2012-06-12 44 views
0

返回值,我試着寫他在SQL:使用if ... else語句在SQL

SET `Field` = (
    If `Field` is empty then "b", 
    if `Field` is not empty, concat(`Field`,"_b")) 

含義,如果Field有值再變成A_B,如果它是空,它會更改爲b 是否有一個SQL合成器,可以正確創建if..else語句?

回答

3
IF(Field = "" or Field IS NULL,'b',concat(Field,'_b')) 
+0

正是我一直在尋找。謝謝! –

+0

null怎麼樣? –

+0

@ n00bprogrammer,你不能在查詢或命令中使用if語句,所以你的peursdo代碼是錯誤的,或者這不是你想要的 –

1

您需要使用CASE關鍵字。

喜歡的東西

UPDATE tbl 
SET field = 
    CASE 
     WHEN field = '' 
      THEN 'b' 
      ELSE field + '_b' 
    END 
2

您可以使用CASE聲明。

例子:

SELECT 
    CASE 
     WHEN myField IS NULL THEN 'b' 
     WHEN myField = '' THEN 'b' 
     ELSE myField + '_b' 
    END 
FROM myTable 
1

您可以使用情況,但可以縮短這樣的:

set Field = isnull(field, '') 
      + case when isnull(field, '') = '' then '' else '_' end 
      + 'b'