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

发布于 2024-12-12 02:48:51 字数 629 浏览 0 评论 0原文

我需要从现有表中导出数据。直到最近我使用 -

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

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

当他们填写表时:

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

对应的SELECT命令是什么?

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

但是 在此示例中我看不到选择 moreFields 的语法]

谢谢,

Atara 。

I need to export data from an existing TABLE. Till recently I used -

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

Now, they changed the TABLE structure, and added new field "item_Info2"

When they fill in the TABLE:

  • if "item_Type" is 1 or 2 or 3 or 4, then "item_Info" is relevant
  • if "item_Type" is 5, then "item_Info" is empty, and I need "item_Info2" as my query result, instead of "item_Info"

What is the corresponding SELECT command?

[similiar question: mysql select any one field out of two with respect to the value of a third field

but from this example I cannot see the syntax for selecting moreFields ]

Thanks,

Atara.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乞讨 2024-12-19 02:48:51

您可以将 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

You can treat the CASE statement as any other column name, separate it from the other columns with a comma, etc. What happens in the CASE should be considered a single column name, in your case you need commas before and after it.

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

you could also use an alias to be easier to get the result from the query:

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
淡忘如思 2024-12-19 02:48:51

编辑其他问题的回复:

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

To edit the reply on the other question:

SELECT 
  item_id, item_otherproperty,
  CASE WHEN item_Type= 5
   THEN item_Info2
   ELSE item_Info
  END AS `info` FROM table ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文