[英]How to use Mysql SELECT CASE WHEN expression
我試圖在mysql DB上使用select case語句。
SELECT
t.name, t.colour,
CASE WHEN (Amount < 0) AS small, CASE WHEN (Amount > 0) AS large FROM t
錯誤:.......要在'AS small,CASE(Amount> 0)附近使用正確的語法
我想要這樣的輸出
Name Colour Small Large
item1 red -35
item2 blue 48
etc.
一直沒有運氣嘗試。 請幫助。
這里是:
SELECT
t.name,
t.colour,
CASE WHEN (t.Amount < 0) THEN t.Amount END AS small,
CASE WHEN (t.Amount > 0) THEN t.Amount END AS large
FROM t
了解CASE WHEN
:
范例1:
假設,
IF n < 0 THEN
'N is negative'
else if n == 0 THEN 'N is Zero'
else 'N is positive'
讓我們使用CASE WHEN
表達式在MySQL中轉換此if-else if
鏈:
SET @n := -9;
SELECT
CASE WHEN @n <0 THEN 'N is Negative'
WHEN @n =0 THEN 'N is 0'
ELSE 'N is positive' END AS output;
輸出:
output
N is Negative
范例2:
現在我們要在MySQL中轉換以下三個if語句
IF n <0 THEN 'N is Negative'
IF n == 0 THEN 'N is Zero'
IF n > 0 THEN 'N is Positive'
SET @n := 5;
SELECT
CASE WHEN @n <0 THEN 'N is Negative' END AS negativeOutput,
CASE WHEN @n =0 THEN 'N is 0' END AS zeroOutput,
CASE WHEN @n > 0 THEN 'N is positive' END AS positiveOutput;
輸出:
現在輸出有三列:
negativeOutput zeroOutput positiveOutput
N is positive
您只能為整個表達式加別名,而不能為表達式的各個組成部分加別名:
SELECT ... (CASE WHEN 'foo'='bar' THEN 'baz' ELSE 'qux' ) AS foo
^--------------------------------------------^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.