如何在没有子查询的情况下查询返回值为500、250的行?
CREATE TABLE [dbo].[DemoTbl]
(
[ACount] [int] NULL,
[BCount] [int] NULL
) ON [PRIMARY]
GO
INSERT INTO [dbo].[DemoTbl] ([ACount], [BCount]) VALUES (NULL, 250)
INSERT INTO [dbo].[DemoTbl] ([ACount], [BCount]) VALUES (500, NULL)
2条答案
按热度按时间dy2hfwbg1#
对于此数据集,您可以只使用聚合:
n9vozmp42#
正确的方法是合并
nulls
转换为某个非空值,该值位于列的域之外(也就是说,其他情况下不会出现的值)。这个答案,由@gmb,https://stackoverflow.com/a/62585518/467473,将结果集的所有行折叠为一行,这是完全不同的数据表示形式。
如果你的table看起来像
然后运行查询
您将得到1行结果集
这可能不是你想要的。
所以,你想说一些类似的话(使用我上面的示例表):
这就产生了
[数据的接收者仍然必须决定如何处理丢失/未知的值(什么
null
表示),但您保持了元组的标识和结果集的基数。]