簡體   English   中英

我怎樣才能在mysql中編寫IF語句

[英]how can I write IF statement in mysql

我有一個type字段的表。

如何在查詢中檢查此字段:

如果type =='a',我想檢查一下

然后bes = amountbed =' - '

ELSE bed = amountbes =' - '

bes和bed在我的表中並不存在但是數量是(int)

這是我的嘗試:

SELECT billing.*,
    CASE billing.type WHEN 'A' THEN billing.amount AS bes, '-' AS bed ELSE billing.amount AS bed, '-' AS bes END
    FROM billing

...我的搜索無用

解決方案......

您可以為每一行創建條件, MySQL支持內聯 IF語句。

SELECT billing.*,
       IF(billing.type = 'A', billing.amount, '-') AS bes,
       IF(billing.type = 'A', '-', billing.amount) AS bed
FROM   billing

你需要兩個案例陳述:

SELECT billing.*,
  CASE billing.type WHEN 'A' THEN billing.amount ELSE '-' AS bes END,
  CASE billing.type WHEN 'A' THEN '-' ELSE billing.amount AS bed END
FROM billing

一個CASE-WHEN-THEN-ELSE只能有一個返回值......

這應該做的伎倆:

SELECT billing.*,
CASE billing.type WHEN 'A' THEN billing.amount ELSE '-' END AS bes,
CASE billing.type WHEN 'A' THEN '-' ELSE billing.amount END AS bed 
FROM billing
SELECT billing.*,
    CASE  WHEN billing.type =  'A' THEN billing.amount ELSE 0 END AS bes,
    CASE  WHEN billing.type <> 'A' THEN billing.amount ELSE 0 END AS bed
FROM billing

根據您的MySQL版本,您可以使用IFCASE CASE (1), CASE (2)的兩種不同語法之一。

SELECT *,
  (IF type = 'A' THEN amount ELSE '-' END IF) bes,
  (IF type = 'A' THEN '-' ELSE amount END IF) bed
FROM billing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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