gpt4 book ai didi

条件基于列值的 WHERE 子句中的 SQL If-Else

转载 作者:行者123 更新时间:2023-12-02 00:42:01 26 4
gpt4 key购买 nike

你会如何重写这个伪 SQL 中的 WHERE 子句?

SELECT *
FROM MyTable
WHERE IF ( Col1 <> '' ) Col1 = @Val1
ELSEIF ( Col2 <> '' ) Col2 = @Val2

最佳答案

你的伪代码的正确等价物是:

WHERE (Col1 <> '' AND Col1 = @Val1) OR
(Col1 = '' AND Col2 <> '' AND Col2 = @Val2)

这按优先级顺序匹配,首先在 Col1 上,然后在 Col2 上。只有当 Col1 为空字符串时,它才会移动到 Col2

注意:此版本假定 Col1 不是 NULL。如果您需要支持 NULL 值,那么可以很容易地将其合并到逻辑中——尤其是在提供有关如何处理它们的一些指导的情况下。

关于条件基于列值的 WHERE 子句中的 SQL If-Else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101196/

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