如果行为空,则存储过程设置值

时间:2014-05-21 06:50:35

标签: sql sql-server sql-server-2008

如果行为空(''),我将如何设置值?

我在想类似的东西,

使用名为@defaultValue的默认值获取var,将其设置为表格中的行所在的位置。

if (select col1 from table1 where col1 = '')
set (select col1 from table1 where col1 = '') = @DefaultValue

有更好的方法吗?

代码只是一个甚至没有经过测试的草案..

2 个答案:

答案 0 :(得分:1)

如果您想使用@DefaultValue更新表格,可以在WHERE查询中使用UPDATE子句:

UPDATE table1
SET col1=@DefaultValue
WHERE col1=''
   OR col1 IS NULL

如果您尝试选择@DefaultValue如果列为空或为空,则可以执行以下操作:

SELECT CASE WHEN (col1 IS NULL OR col1='') 
              THEN @DefaultValue
              ELSE col1
            END AS Col1
FROM table1

答案 1 :(得分:0)

select case when col1 ='' then @DefaultValues else col1 end from table

DEMO

declare @default int
set @default=1

declare @tbl table(col1 int)
insert into @tbl values(1),(''),(2)

select case when col1='' or col1 is null then @default else col1 end from @tbl