0

私はSQLで彼を書き込もうとしています:

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

つまり、値が a の場合Fieldは a_b に変更され、空の場合は b に変更されます。この if..else ステートメントを適切に作成する SQL シンタックスはありますか?

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 に答える