【发布时间】:2015-09-10 01:22:25
【问题描述】:
我对 SQL Server 真的很陌生。我想用同一个表中另一列的数据替换一个空列。
Declare @ref As mgr.gl_jlhdr.ref_no
Declare @P_no As mgr.gl_jlhdr.jlno
IF ref = Null
Then ref = P_no
end if
请帮忙。
我收到一个错误
类型名称“mgr.gl_jlhdr.ref_no”包含的前缀数量超过了最大数量。最大值为 1。
我想要的是用其他列数据替换一个空值列。
例子
如果reference_no 为空,我希望它使用Product_no 数据。
【问题讨论】:
-
请使用示例数据和所需结果编辑您的问题。
-
想要的是用其他列数据替换空值列。例如,如果 reference_no 为空,我希望它使用 Product_no 数据。
-
该代码中有很多错误。首先,您需要“声明”为一种类型(例如 INT)。其次,稍后在引用变量时需要包含“@”。第三,
If... then... end if语法不是 SQL。第四,IF @ref = Null永远不会起作用:你需要使用IS NULL。 Null 很棘手,有一大堆函数专门用于解决它们(COALESCE、ISNULL、IS NULL)——你真的需要尽快掌握所有这些。
标签: sql sql-server-2005 sql-server-2008-r2 numbers max