web-dev-qa-db-ja.com

MYSQL上の複数のIFステートメント

データベースの結果にいくつかの値を表示しようとしています。このコードを使用していますが、成功できません。

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items

EDIT:表示したい例:

If category_code = 'HERR1'
 Display = 1
else if category_code = 'COLN5'
 Display = 2
End If

誰かが何か考えがあれば、それを大いに感謝します

16
John Nuñez

CASEを使用したい

_SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1
WHEN 'COLN5' THEN 2
ELSE 'NO'
END as category_code, item_name, item_quantity 
FROM qa_items
_

しかし、IFも機能します:IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

35
a1ex07

Ifステートメントをネストする必要があります

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items

次に、最初のifが失敗し、ネストされたifが評価されます

11
Mark Willis

これはあなたが求めていたものですか?

SELECT
  item_code,
  CASE category_code
    WHEN 'HERR1' THEN 1
    WHEN 'COLN5' THEN 2
    ELSE 'NO'
  END AS category_code,
  item_name,
  item_quantity
FROM qa_items
5
nnichols

以下をお試しください

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items
1
Chetter Hummin

親切にIt It Simple Simple It Worksを使用してください。

 SELECT if(reference_customer_id = 0,sum(((package_priceemployee_percentage)/100)),sum(((package_priceemployee_percentage)/100))) 
    as direct_commission
0
Siva

これを試すことができます。選択クエリでIFを使用して、必要なテーブルを更新します;)

テーブルstudent(marks int、grade char);を作成します。

学生の値に挿入(200、null)、(120、null)、(130、null);

生徒の内部結合を更新(s.marks、IF(s.marks> = 200、 'A'、IF(s.marks> = 130、 'B'、 'P')を選択)AS Grade from生徒s)b on a.marks = b.marks SET a.Grade = b.Grade;

0
Kumar harsh

私の3列のテーブルでは、1つはpackage_price, employee_percentage, reference_customer_idです。

reference_customer_id > 0の場合は従業員の割合をreferenced_commissionとして、reference_customer_id = 0の場合は直接コミッションを求めます。私は以下の方法を試しました:

SELECT if(reference_customer_id = 0,  sum(((package_price*employee_percentage)/100)) , 0) as direct_commission, if(reference_customer_id > 0,  sum(((package_price*employee_percentage)/100)) , 0) as reference_commission
0
user5090777