下面的 sql 語句是要將 status
列根據一個條件或者多條件轉換爲對應的值. 其中要注意 case
關鍵字後面不能帶上列名 status
而是直接跟上 when
關鍵詞, 不然會導致轉換無效.
SELECT id, case
WHEN cast(`status` AS SIGNED) < 45 THEN '1'
WHEN cast(`status` AS SIGNED) > 44 AND vacant_time IS NOT NULL AND vacant_time != '' THEN '3'
WHEN cast(`status` AS SIGNED) > 44 AND move_date IS NOT NULL AND move_date != '' THEN '2'
WHEN cast(`status` AS SIGNED) > 44 THEN '4'
ELSE '99'
END AS `status`
FROM t_household WHERE del_flag = '0';