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

Ata*_*ara 5 mysql sql

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

SELECT item_ID, item_Info, ...moreFields... FROM tableName WHERE myCondition=0
Run Code Online (Sandbox Code Playgroud)

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

当他们填写表:

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

什么是相应的SELECT命令?

[类似的问题:mysql根据第三个字段的值选择两个中的任何一个字段

但是从这个例子中我看不到选择moreFields的语法]

谢谢,

Atara.

Nik*_*off 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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)