gpt4 book ai didi

mysql - 将变量添加到 CASE 语句中然后输出

转载 作者:可可西里 更新时间:2023-11-01 16:40:23 29 4
gpt4 key购买 nike

如果我在 Impala 中有如下代码:

(CASE 
WHEN a3.shipped_qty1 > a4.shipped_qty2 AND a1.min1 < a2.min2 THEN "KEEP"
WHEN a3.shipped_qty1 < a4.shipped_qty2 AND a1.min1 < a2.min2 THEN "MOVE"
WHEN a3.shipped_qty1 > a4.shipped_qty2 AND a1.min1 > a2.min2 THEN "MOVE"
WHEN a3.shipped_qty1 < a4.shipped_qty2 AND a1.min1 > a2.min2 THEN "KEEP"
ELSE "NOT SHIPPING"
END) AS move

我希望文本输出如下内容:

(CASE 
WHEN a3.shipped_qty1 > a4.shipped_qty2 AND a1.min1 < a2.min2 THEN "KEEP"
WHEN a3.shipped_qty1 < a4.shipped_qty2 AND a1.min1 < a2.min2 THEN "MOVE TO **a3.supplier**"
WHEN a3.shipped_qty1 > a4.shipped_qty2 AND a1.min1 > a2.min2 THEN "MOVE TO **a4.supplier**"
WHEN a3.shipped_qty1 < a4.shipped_qty2 AND a1.min1 > a2.min2 THEN "KEEP"
ELSE "NOT SHIPPING"
END) AS move

我该如何编码?

最佳答案

您可以使用 CONCAT() 构建输出字符串:

(CASE 
WHEN a3.shipped_qty1 > a4.shipped_qty2 AND a1.min1 < a2.min2 THEN "KEEP"
WHEN a3.shipped_qty1 < a4.shipped_qty2 AND a1.min1 < a2.min2 THEN concat("MOVE TO **",coalesce(a3.supplier,''),"**")
WHEN a3.shipped_qty1 > a4.shipped_qty2 AND a1.min1 > a2.min2 THEN concat("MOVE TO **",coalesce(a4.supplier,''),"**")
WHEN a3.shipped_qty1 < a4.shipped_qty2 AND a1.min1 > a2.min2 THEN "KEEP"
ELSE "NOT SHIPPING"
END) AS move

附言我还将供应商值包装在 COALESCE() 中,因为我不知道这些列是否可以为空,否则如果这些值为空,查询将失败。

关于mysql - 将变量添加到 CASE 语句中然后输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42143312/

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