2013-05-28 3 views
3

Я хочу установить значение столбца только в том случае, если оно не пустое.Обновить столбец с использованием выражения case sql

Вот образец

Declare @Temp Varchar(20) 

Update Logins 
Set ColValue = 
Case When @Temp <> '' Then @Temp Else /* Dont SET Value */ End 
Where Code=1 

Что писать в Else части?

У меня есть несколько столбцов, чтобы обновить и хотите применить условие только в одном столбце

DB: SQL SERVER 2008

+1

http://stackoverflow.com/questions/14762374/how-do-i-use-case-in-sql-for-my-example может помочь вам – gasroot

ответ

3

Вы должны установить обновленный столбец, как показано ниже:

Declare @Temp Varchar(20) 

Update Logins 
Set ColValue = Case When @Temp <> '' Then @Temp 
        Else ColValue 
       End 
Where Code=1 
0

Вы может проверить вашу переменную в ГДЕ, чтобы не обновляться вообще, когда она пуста

Declare @Temp Varchar(20) 

Update Logins 
Set ColValue = @Temp 
Where Code=1 AND @Temp <> '' 
+0

У меня есть несколько столбцов для обновления и хочу применить условие только в одном столбце – Shaggy

+1

@SagarDumbre Ну, в в этом случае используйте другое решение с 'ELSE ColValue' в CASE :) –

Смежные вопросы