数値の列があります
私は質問しています
SELECT column
FROM table
WHERE column='1' OR
column='2' OR
column='3' OR
column='4'
その後
REPLACE (column, "1", "ABC");
REPLACE (column, "2", "DEF");
REPLACE (column, "3", "GHI");
REPLACE (column, "4", "JKL")
セミコロンを間違って使用しているかどうかはわかりません。
助けてください!
置換の対象としてCASE
を使用できます。また、WHERE
をより合理化するように変更しました。
SELECT
CASE
WHEN column = '1' THEN 'ABC'
WHEN column = '2' THEN 'DEF'
WHEN column = '3' THEN 'GHI'
WHEN column = '4' THEN 'JKL'
END AS column
FROM table
WHERE column IN ('1','2','3','4')
注意として、column
がint
の場合、値を ''でラップする必要はありません。
SELECT
CASE
WHEN column = 1 THEN 'ABC'
WHEN column = 2 THEN 'DEF'
WHEN column = 3 THEN 'GHI'
WHEN column = 4 THEN 'JKL'
END AS column
FROM table
WHERE column IN (1,2,3,4)
これによりテーブルがまったく変更されることはありません。データの表示方法が変更されるだけです。
あなたはよりよく使うでしょう:
SELECT CASE
WHEN column = 1 THEN 'ABC'
WHEN column = 2 THEN 'DEF'
WHEN column = 3 THEN 'GHI'
END AS column
FROM table
WHERE ...
REPLACEを単独で使用すると、以下のように使用できます。
SELECT REPLACE(REPLACE(REPLACE(REPLACE(column, '1', 'ABC'), '2', 'DEF'), '3', 'GHI'), '4', 'JKL')
FROM table
WHERE column IN ('1', '2', '3', '4')
置換はセミコロンで区切るのではなく、他の入れ子にする必要があります。WHERE
の代わりにOR
句の詳細IN
を使用できます