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 回答
1

你可以试试这个。在选择查询中使用 IF 并更新您想要的表;)

创建表学生(标记int,等级char);

插入学生值(200,null),(120,null),(130,null);

UPDATE student a INNER JOIN (select s.marks, IF(s.marks>=200,'A',IF(s.marks>=130,'B','P')) AS Gradefrom student s) b on a .marks= b.marks 设置 a.Grade = b.Grade;

于 2019-09-30T06:55:01.307 回答