2010-02-09 77 views
7

是否有可能在更新查詢中使用case語句?我需要做這樣的事情:如果人名以'S'開頭,則追加'1',否則追加'2'。在更新查詢中使用case語句

我在SQL Server嘗試這樣做,也沒有工作

 
UPDATE PERSON 
CASE 
WHEN NAME LIKE 'S%' THEN SET NAME = NAME + '1' 
ELSE SET NAME = NAME + '2' 
END 

回答

10

我想補充一個稍微不同的變種,我傾向於選擇(個人喜好)。

UPDATE Person 
SET Name = Name + CASE WHEN Name LIKE 'S%' THEN '1' ELSE '2' END 

我喜歡這個,因爲它節省重複「姓名+」位爲每個條件 - 在這種情況下,它沒有大的,但是在更多的條件的其他方案,這可能過於重複

7

CASE WHEN返回表達式,而不是一個聲明。您可以使用它像這樣:

 
UPDATE PERSON 
SET NAME = CASE WHEN NAME LIKE 'S%' THEN NAME + '1' 
            ELSE NAME + '2' 
      END 
2

這將是:

update person 
set name = case when name left(name,1) = 'S' then name + '1' else name + '2' end