将空白结果设置为等于SQL Server中的特定字符串

时间:2014-01-03 06:30:47

标签: sql sql-server

我有一个查询返回一个结果集,其中包含需要进行一些调整的某个列。基本上,在结果集中,某些行包含适用列的空值。我需要做的是将该空白值的所有实例设置为特定字符串。我已经尝试声明一个变量并将变量设置为等于列名(使用SELECT语句),然后使用IF语句将值设置为特定字符串(如果它为空(''))。到目前为止,我的代码如下:

declare @sourceNode varchar(30)                  
set @sourceNode = (select sn_name from pt_cust)
if @sourceNode = '' begin
    set @sourceNode = 'None'
end  

此代码返回一个错误,指出子查询返回的值超过1。这似乎是一件容易的事,但我现在卡住了。如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

这是案例(heh)CASE:

SELECT CASE WHEN sn_name = '' THEN 'None' ELSE sn_name END
FROM pt_cust

您收到了您提到的错误消息,因为您的SELECT语句可以返回多行,在这种情况下,它不能分配给变量。