【发布时间】:2013-04-03 06:03:21
【问题描述】:
我有一个表格,其中包含有关零件供应商的信息
背景:这张表是
的join- 部件主记录,其中包含
- 部件号、部件名称和默认供应商。
- 另一个表是供应商信息表,其中包含
- 零件编号与供应商的记录及其对零件的报价(我在此示例中省略了额外信息)
在此表中某些零件的默认供应商为 NULL。 对于这些记录,我想插入一条新记录作为占位符 即下面的#3
有些零件有默认供应商,但没有可能供应商的记录(带报价)。 对于这些记录,我还想插入一条新记录作为占位符。 即下面的#1
当前表
+-------+-----------+-------------------+-------------------+------------+------------+
|PART |PART NAME |Default Supplier |Possible Suppliers |Quote |InfoComplete|
+-------+-----------+-------------------+-------------------+------------+------------+
|#1 |Part 1 |Supplier 5 |Supplier 1 |25.0 |0 |
|#1 |Part 1 |Supplier 5 |Supplier 2 |20.5 |0 |
|#2 |Part 2 |Supplier 10 |Supplier 10 |10.4 |1 |
|#3 |Part 3 |NULL |Supplier 3 |9.5 |0 |
|#3 |Part 3 |NULL |Supplier 4 |11.5 |0 |
+-------+-----------+-------------------+-------------------+------------+------------+
所需的输出(为清楚起见显示空间)
+-------+-----------+-------------------+-------------------+------------+------------+
|PART |PART NAME |Default Supplier |Possible Suppliers |Quote |InfoComplete|
+-------+-----------+-------------------+-------------------+------------+------------+
|#1 |Part 1 |Supplier 5 |Supplier 1 |25.0 |0 |
|#1 |Part 1 |Supplier 5 |Supplier 2 |20.5 |0 |
|#2 |Part 2 |Supplier 10 |Supplier 10 |10.4 |1 |
|#3 |Part 3 |NULL |Supplier 3 |9.5 |0 |
|#3 |Part 3 |NULL |Supplier 4 |11.5 |0 |
| | | | | | |
|#1 |Part 1 |Supplier 5 |**MISSING** |NA |0 |
|#3 |Part 3 |**MISSING** |**MISSING** |NA |0 |
+-------+-----------+-------------------+-------------------+------------+------------+
从我阅读的内容来看,合并语句可能是一个解决方案,但我根本无法让它工作。
编辑:
抱歉,我在最初的帖子中应该更清楚一点,正在导出信息以供用户查看缺失的数据。 没有计划替换数据库中的 NULL 值。
我只是想对数据进行操作,让用户更清楚地理解数据。
根据反馈,我正在寻找更好的方式向用户显示信息。
【问题讨论】:
-
为什么要浪费额外的空间来存储 `**MISSING** 在这些记录中,而 NULL 将是一种更有效和更典型的数据排列方式?此外,采用这种方法会降低默认供应商为空的零件的搜索效率。
-
我无法从示例中看到第 1 部分(以及第 3 部分)如何从可能的供应商那里获得MISSING?
标签: sql sql-server-2008 tsql insert