簡體   English   中英

如何在表達式中使用Mysql SELECT CASE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM