19

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

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

編集: たとえば表示したい:

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

誰かが何か考えを持っているなら、それを大いに感謝します

4

5 に答える 5

43

私はむしろ使用したい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'))

于 2012-03-10T17:32:11.813 に答える
11

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は評価されます

于 2012-03-10T17:30:15.740 に答える
5

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

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
于 2012-03-10T17:32:09.277 に答える
1

以下を試してください

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
于 2012-03-10T17:35:39.013 に答える