【问题标题】:Query of SQL Server 2012 database multiple values in one cellSQL Server 2012 数据库在一个单元格中查询多个值
【发布时间】:2014-11-11 14:11:57
【问题描述】:

我有一个数据库,其中包含表 End_user 和列 Name, City, Country, Plant_name, Unit_IDProject_NR

现在,End_user 可能位于多个城市或国家/地区,并具有多个 PlantsunitsProject_nr。所以数据库应该能够在这些单元格中有多个值。

我尝试了多个查询,但我不断收到错误。

例子:

  • 名称:汽油
  • 城市:阿姆斯特丹,雷克雅未克
  • 国家:荷兰,雷克雅未克
  • Plant_name:Plant_1、Plant_2、Plant_3
  • Unit_ID:123, 345
  • Project_NR:1234、2123、3456、7856

有人可以帮我查询吗?

【问题讨论】:

  • 还有 - 拿一本关于关系数据库的书。理论。然后重新设计你的方法。每个字段有多个值 = 不知道如何设计关系 1:m 模型的程序员。没有一张桌子,伙计。多个。
  • 我发誓这个网站需要一个Non-1NF 标签。试试看this
  • 在每一列或每一行中最多有一个值是关系数据库设计的基本概念。不要将多个值放入一个单元格中 - 这肯定会反过来影响您并损害您的性能和开发软件的能力!要处理这种情况,您需要在表之间使用关系 - 一个end_user 可以链接到多个citycountry 行。这就是关系数据库的工作原理。

标签: sql sql-server sql-server-2012 helpers


【解决方案1】:

在一行的单个字段中存储多个值是不好的做法。在不详细介绍如何构建的情况下,您应该考虑您要回答的问题。所以我假设您的主表对于每个最终用户都有多条记录,如果他们位于超过 1 个城市或国家/地区?我认为您想要一个表格,其中每个最终用户需要 1 条记录。那么这张表的目的是什么?也许考虑做一些像城市这样的事情,例如此最终用户有 2 个城市。如果您需要详细信息,请切换回您的表格,每个最终用户有 2 条记录。或者您可以创建作为标志的字段,例如伦敦的一个字段和纽约的一个字段,您可以将标志设置为 1 或 0。这只会以非常有限的方式起作用,但可能适用于您的数据集。

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多