SQL:如何根据第三个字段选择两个字段中的一个

时间:2011-10-27 11:28:15

标签: mysql sql

我需要从现有的TABLE导出数据。直到最近我用 -

SELECT item_ID, item_Info, ...moreFields... FROM tableName WHERE myCondition=0

现在,他们更改了TABLE结构,并添加了新字段“item_Info2”

当他们填写表格时:

  • 如果“item_Type”为1或2或3或4,那么“item_Info”是相关的
  • 如果“item_Type”为5,那么“item_Info”为空,我需要“item_Info2”作为我的查询结果,而不是“item_Info”

相应的SELECT命令是什么?

[类似问题:mysql select any one field out of two with respect to the value of a third field

从此示例中我看不到选择moreFields的语法]

谢谢,

Atara。

2 个答案:

答案 0 :(得分:11)

您可以将CASE语句视为任何其他列名称,并使用逗号将其与其他列分开等。CASE中的内容应视为单个列名称,在您的名称中你需要在它之前和之后使用逗号。

SELECT item_ID, CASE WHEN item_Type = 5 THEN item_info ELSE item_info2 END, field_name, another_field_name ...moreFields... FROM tableName WHERE myCondition=0

您还可以使用别名来更轻松地从查询中获取结果:

SELECT item_ID, CASE WHEN item_Type = 5 THEN item_info ELSE item_info2 END AS 'item_info', field_name, another_field_name ...moreFields... FROM tableName WHERE myCondition=0

答案 1 :(得分:3)

编辑其他问题的回复:

SELECT 
  item_id, item_otherproperty,
  CASE WHEN item_Type= 5
   THEN item_Info2
   ELSE item_Info
  END AS `info` FROM table ...