【发布时间】:2015-01-25 20:20:25
【问题描述】:
如果在 IN 子句中找到值,我有一个返回记录的查询。匹配的记录从 0 到 1 不等,因此是查询的结果。但我想将计数设为 5,即使其余行填充为 NULL。有什么办法可以做到这一点? 如,对于给定的查询
SELECT categoryID, categoryName
FROM category
WHERE categoryID
IN ( 52, 58, 60 , 62 , 64)
我只有前 3 个 id 的值,因此结果只给了我 3 行。但我希望结果计数为 5,其余不满意的行填充空值以进行计数。 当前结果:
CategoryID CategoryName
52 ABC
58 XYZ
60 DEF
需要的结果
CategoryID CategoryName
52 ABC
58 XYZ
60 DEF
NULL NULL
NULL NULL
【问题讨论】:
-
这种逻辑的原因是什么?
-
我不明白你为什么要这样做...?所以如果你输入 IN ( 52, 58, 60 , 62 , 64, 85, 62, 82) 它只会返回更多的空值......?
-
虽然可以直接在 SQL 中执行此操作,但在大多数情况下,在 SQL 之外执行此操作会容易得多。 @Nightmaresux 的评论指出了另一个好问题:当多次指定同一个 ID 时,您希望发生什么?
-
@hvd 只有 SQL 真的可以吗?
-
这可能可以使用代码实现,但我想知道我们是否可以直接在普通 SQL 中这样做