【发布时间】:2014-08-21 08:53:30
【问题描述】:
我有一个疑问。我正在处理一组类似于下表的数据:
╔══════╦═══════════╗
║ Col1 ║ Col2 ║
╠══════╬═══════════╣
║ 1 ║ NULL ║
║ 2 ║ NULL ║
║ 3 ║ NULL ║
║ 4 ║ AAAAAAAAA ║
║ 5 ║ NULL ║
╚══════╩═══════════╝
我需要找到一种方法来使用非 NULL Col2 值填充 Col2 中的所有 NULL 值。所以查询的结果应该用AAAAAAAAA填充所有5行,只要至少有1个非NULL值。
编辑:不必是AAAAAAAAA 来真正填充剩余的行。它可以是任何东西,只要有某种方法可以确定集合中至少有 1 个非空值。
【问题讨论】:
-
如果其中两行的
col2具有不同的非NULL 值,会发生什么?例如,如果col2在第一行是BBBBBBB,你会期待什么? -
您的意思是“用非 NULL 的 'col1' 值填充 'col2' 中的所有 NULL 值。” ?
-
@StefanWinkler 只要至少有 1 个非空值,那么就需要有一些标识符表明集合中有一个非空值。因此,如果有 BBBBBBBB 和 AAAAAA,那么它仍然可以通过测试。将值更改为什么并不重要 - 如果通过测试,将所有内容更改为不同的值可能会更好,例如“xyz”。这也有效。
-
@ConradFrix SQL 服务器,是的,语法可能略有不同,但逻辑相似。
-
@TarikZouine 没有。需要有某种方法来确定第 2 列中是否存在非空值。
标签: sql sql-server database tsql