2008-11-18 136 views
4

我想更新表中的两列。第二列的值取决于第一列;如果第一个为空,则第二个值为'假',否则为'真'。
我可以在TSQL内部做到这一点,还是需要在我的代码中分别计算出这些值,然后更改SQL以适应这些值。我一直在寻找类似:在TSQL UPDATE中使用IF语句

DECLARE @NewColumnValue as nvarchar(10); 
SELECT @NewColumnValue = ColumnY From TableY 
UPDATE TableX 
SET Column1 = @NewColumnValue, 
Column2 = (IF (@NewColumnValue IS NULL) THEN 'False' ELSE 'True'); 

回答

17

您正在寻找CASE表达式:

Column2 = CASE WHEN @NewColumnValue IS NULL THEN 'False' ELSE 'True' END