0

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

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

意思是,如果Field有值 a 它将更改为 a_b,如果它为空,它将更改为 b 是否有一个 sql 合成器可以正确创建此 if..else 语句?

4

4 回答 4

3
IF(Field = "" or Field IS NULL,'b',concat(Field,'_b'))
于 2012-06-12T10:41:01.387 回答
2

您可以使用CASE语句。

例子:

SELECT 
    CASE  
        WHEN myField IS NULL THEN 'b'
        WHEN myField = '' THEN 'b'
        ELSE myField + '_b'
    END 
FROM myTable
于 2012-06-12T10:40:49.420 回答
1

您需要使用CASE关键字。

就像是

UPDATE tbl
SET field = 
    CASE
        WHEN field = ''
            THEN 'b'
            ELSE field + '_b'
    END
于 2012-06-12T10:39:53.947 回答
1

您可以使用 Cases,但您可以像这样缩短它:

 set Field = isnull(field, '') 
             +  case when isnull(field, '') = '' then '' else '_' end 
             + 'b'
于 2012-06-12T10:51:13.163 回答