gpt4 book ai didi

sql - TSQL-在多列上为ISNULL

转载 作者:行者123 更新时间:2023-12-04 13:09:51 24 4
gpt4 key购买 nike

我有一个简单的SQL查询(SQL Server 2005),在其中从包含多个具有BIT值的列的表中进行选择。
这些列可以为空,因此可以包含NULL,0或1。

这些列有很多,在我的查询中,如果值是NULL,我想返回零。
我目前正在像这样使用ISNULL:

SELECT Name, Age, ISNULL(LikesOranges,0), ISNULL(LikesApples,0), ISNULL(LikesPears,0)
FROM FoodPreferences

正如我已经提到的,这些BIT列很多(比上面的简单示例要多得多)。
有没有一种方法可以在这样的多个列上使用ISNULL:
SELECT ISNULL(*,0) FROM FoodPreferences

上面的查询不起作用,但是您可以执行我想做的事情-因此,我可以避免为每一列写一个ISNULL语句,

谢谢。

最佳答案

so I can avoid having to write an ISNULL statement for each column,



运行此查询并将结果复制到您的select语句。 system_type_id = 104过滤 bit列上的结果。
select stuff((select  ', isnull('+name+', 0)'
from sys.columns
where object_id = object_id('FoodPreferences') and
system_type_id = 104
for xml path('')), 1, 1, '')

结果:
-------------------------------------------------------------------------
isnull(LikesOranges, 0), isnull(LikesApples, 0), isnull(LikesPears, 0)

关于sql - TSQL-在多列上为ISNULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6265600/

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