gpt4 book ai didi

sql - 当 WHERE 条件不满足时,如何选择至少 1 行?

转载 作者:行者123 更新时间:2023-12-04 20:56:47 25 4
gpt4 key购买 nike

我有一个非常简单的查询,它从下表返回一组行:

Table1
N1 N2
1 A1
1 A2
2 B1
2 B2
2 B3

N1 = @X 时,我只需要表格中的一行 (TOP(1)) .在所有情况下,我宁愿得到一个特定的 N2值,但并非在所有情况下都是 N2每个 N1 都会存在值

例如以下查询将不会返回任何行:

SELECT TOP(1) N1, N2 FROM Table WHERE N1 = 2 AND N2 = 'B4'

我正在寻找一种简单的方法来返回至少 1 行,即使条件为 N2 = @N2没有实现。返回哪一行都没有关系,如果 @N2值不存在。

到目前为止,我已经完成了以下工作,但如果有人知道更简单的事情,我想知道:

;with tmp AS (
SELECT TOP(1) *, 1 AS No FROM Table1 WHERE N1 = @N1 AND N2 = @N2
UNION
SELECT TOP(1) *, 2 AS No FROM Table1 WHERE N1 = @N1
)

SELECT TOP(1) * FROM tmp ORDER BY No

任何帮助将不胜感激

最佳答案

我想你想要order by:

SELECT TOP(1) N1, N2
FROM Table
WHERE N1 = 2
ORDER BY (CASE WHEN N2 = 'B4' THEN 1 ELSE 2 END);

关于sql - 当 WHERE 条件不满足时,如何选择至少 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46455070/

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