有什麼辦法,使這項工作:SQL CASE在SELECT和WHERE選擇行
SELECT *, CASE WHEN a=0 THEN "test1"
WHEN a=1 THEN "test2"
END AS a FROM table WHERE a LIKE "%test%"
所以應該給我的所有行a=0 or a=1
。關鍵是我需要使用字符串「test」來搜索這些行。
有什麼辦法,使這項工作:SQL CASE在SELECT和WHERE選擇行
SELECT *, CASE WHEN a=0 THEN "test1"
WHEN a=1 THEN "test2"
END AS a FROM table WHERE a LIKE "%test%"
所以應該給我的所有行a=0 or a=1
。關鍵是我需要使用字符串「test」來搜索這些行。
你可以試試這個:
SELECT * FROM
(SELECT *,CASE WHEN a=0 THEN "test1"
WHEN a=1 THEN "test2"
END AS b
FROM TableA) TableB
WHERE b LIKE "%test%"
在情況下,如果要覆蓋領域:
SELECT * FROM
(SELECT CASE WHEN a=0 THEN "test1"
WHEN a=1 THEN "test2"
ELSE a
END AS a
FROM TableA) TableA
WHERE a LIKE "%test%"
這就是我需要的一部分,但是如果我想在一張桌子裏面做這個並覆蓋那個,怎麼辦? – dragonn
增加了用於覆蓋表的字段a的選擇語句。請嘗試。 –
如果你想要的所有行,其中a = 0或= 1,你可以使用運營商
SELECT * FROM table WHERE a IN (0,1)
但是,如果你真的想使用情況下,您需要聲明
是的,我只是忘記了,但那不是重點。我不會通過使用字符串「test」來搜索行。這就是爲什麼我使用CASE – dragonn
有兩個CASE語句,一個用於陳述,第二個用於表達式(你需要)。你應該這樣做這些 -
SELECT CASE a WHEN 0 THEN 'test1' WHEN 1 THEN 'test2' END
這是一個語法 - Control Flow Functions
SELECT
*,
(CASE a
WHEN 0 THEN "test1"
WHEN 1 THEN "test2"
END) as a_txt
FROM tableXY
說不上你想要做的,其中 「%測試%」
是的,只是不要忘記你的'FROM '條款 – uri2x
FROM?所以我希望在這個問題上提出一個secound查詢? – dragonn