gpt4 book ai didi

mysql select case 多列作为

转载 作者:可可西里 更新时间:2023-11-01 07:03:33 27 4
gpt4 key购买 nike

我想用这样的东西设置多个字段,我该如何让它工作?

Select TableId,
CASE
WHEN StartTime > Appt THEN
Field AS Field_1
FieldId AS FieldId_1
WHEN StartTime BETWEEN Appt AND DATE_ADD(Appt, INTERVAL 1 MONTH) THEN
Field AS Field_2
FieldId AS FieldId_2
END
FROM TableA;

它不起作用,AS Field_1 附近的语法错误。

最佳答案

您正试图在 SQL 语句中执行类似于宏扩展的操作,但您无法执行此操作。解决问题的最简单方法是在应用程序代码中动态编写 SQL,并从应用程序中有条件地执行该语句。

如果您必须在 SQL 中执行此操作,您有几个选择。

每个 CASE 都是一个表达式,因此您只能通过为每一列创建一个单独的 CASE 来单独生成输出字段:

SELECT ID,
CASE WHEN StartTime > Appt THEN Field_A
WHEN StartTime BETWEEN Appt AND DATE_ADD(Appt, INTERVAL 1 MONTH) THEN
Field_B
END AS field1,
CASE WHEN StartTime > Appt THEN Field_C
WHEN StartTime BETWEEN Appt AND DATE_ADD(Appt, INTERVAL 1 MONTH) THEN
Field_D
END AS field2
FROM TableA;

或者,使用 statement form of CASE (或 IF ,这可能更简单)在存储过程中,以包含语句的多个版本并有条件地执行它们。

关于mysql select case 多列作为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com