Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我想找到';不适用';值并用下一个值更新它_Sql_Tsql - Fatal编程技术网

Sql 我想找到';不适用';值并用下一个值更新它

Sql 我想找到';不适用';值并用下一个值更新它,sql,tsql,Sql,Tsql,我有一个表,其中很多值都是“N/a”。我想用下一个非“N/A”值更新它 我的桌子: col1 || column2 || Column3 N/A || ACT0001 || ACT0002 ACT0004 || N/A || ABT0003 N/A || N/A || AND0009 输出: 专栏4 ACT001 ABT003 AND009 提前谢谢你我不确定我是否理解你的意思,也许是这样的 UPDATE YourTable t SET

我有一个表,其中很多值都是“N/a”。我想用下一个非“N/A”值更新它

我的桌子:

col1  || column2   || Column3   


N/A   ||  ACT0001   || ACT0002


ACT0004   || N/A   || ABT0003


N/A   || N/A   || AND0009
输出:

专栏4

ACT001

ABT003

AND009

提前谢谢你

我不确定我是否理解你的意思,也许是这样的

UPDATE YourTable t
SET t.col4 = CASE WHEN t.col1 = 'N/A' THEN
                                           CASE WHEN t.col2 <> 'N/A' THEN t.col2
                                                ELSE t.col3
                                           END
                  WHEN t.col2 = 'N/A' THEN t.col3 
             END
更新您的表格t
当t.col1='N/A'时,设置t.col4=CASE,然后
当t.col2'不适用'时,则t.col2
艾尔斯特柯尔
结束
当t.col2='N/A'时,则t.col3
结束
这个怎么办:

UPDATE Table
SET Col4 = COALESCE(NULLIF(Col1, 'N/A'), NULLIF(Col2, 'N/A'), NULLIF(Col3, 'N/A'))
如果
Col3
始终有值,则可以删除
NULIIF
语句;如果所有值均为“N/A”,则可以添加其他条件:

 COALESCE(NULLIF(Col1, 'N/A'), NULLIF(Col2, 'N/A'), NULLIF(Col3, 'N/A'), 'No value found')

到目前为止你试过什么?您的数据库中只有3列,或者会更多?谢谢,这就是我要找的。
 COALESCE(NULLIF(Col1, 'N/A'), NULLIF(Col2, 'N/A'), NULLIF(Col3, 'N/A'), 'No value found')