回答

收藏

大量列中使用NULL更换空单元格的值

技术问答 技术问答 757 人阅读 | 0 人回复 | 2023-09-14

我有很多列SQL表。由于某些原因,有些列有空单元格,而不是NULL单元格。我想让所有列中的空单元格都是NULL。2 a# j$ V+ ], B: l, V
我知道单列的方式是:
- j, J) j5 c* l& \* f7 o( Z; z    UPDATE your_table SET column = NULL WHERE column = ''然而,我不确定如何有效地执行所有列的类似逻辑,而不是一个接一个地编写列名。
0 A0 ?( f' [- T, ?& E" _  z谢谢,6 I) p0 B9 q% E/ k1 x. F% {
                                                                1 i( x0 f9 |* H' l2 |5 ^3 a( r
    解决方案:                                                                5 y/ n6 S# B5 z9 H" F
                                                                以下操作查询:
1 C/ @/ @+ ~* p( |SELECT 'UPDATE yourtable SET '   name   ' = NULL WHERE '   name   ' = '''';'FROM syscolumnsWHERE id = object_id('yourtable')  AND isnullable = 1;查询的输出如下所示SQL脚本块:
  R  I7 V+ Q6 Z' N0 r- \UPDATE yourtable SET column1 = NULL WHERE column1 = '';UPDATE yourtable SET column2 = NULL WHERE column2 = '';UPDATE yourtable SET column3 = NULL WHERE column3 = '';-- etc...复制该SQL将脚本粘贴到新查询中,然后操作它更新所有列。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则