gpt4 book ai didi

sql - COALESCE 在 Where 子句中?

转载 作者:行者123 更新时间:2023-12-04 00:38:03 24 4
gpt4 key购买 nike

有没有一种好的方法可以在 SQL 中表达,如果列匹配则选择特定行,否则选择更一般的行?像这样的东西:

SELECT name FROM names 
WHERE (colA = @colA OR colA = 'ALL')

我只希望它返回一个特定的记录(如果它存在),否则如果找不到特定的列匹配则返回通用的“ALL”记录。似乎 COALESCE 与我正在寻找的类似,但我不知道它在语法上如何工作。

最佳答案

@Blorgbeard 的回答(使用 top 1 和 order by)可能是最好的方法,但为了与众不同,您也可以使用子查询而不存在:

SELECT name FROM names 
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
SELECT name FROM names
WHERE colA = @colA))

我猜它的“优势”是它使用了更标准的 sql。

关于sql - COALESCE 在 Where 子句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623332/

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