使用if ... else语句作为sql中的返回值

时间:2012-06-12 10:36:36

标签: sql if-statement

我正在尝试用sql编写他的文字:

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

意思是,如果Field具有值a,它将变为a_b,如果它是空的,它将变为b 是否有正确创建if..else语句的sql synthax?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您可以使用CASE声明。

示例:

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

答案 2 :(得分:1)

您需要使用CASE关键字。

这样的东西
UPDATE tbl
SET field = 
    CASE
        WHEN field = ''
            THEN 'b'
            ELSE field + '_b'
    END

答案 3 :(得分:1)

你可以使用案例,但你可以像这样缩短它:

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