不过这个方法也是难懂,如果是我就改成:
CREATE TABLE #T
(A BIT,B BIT,C BIT,D BIT,E BIT)
INSERT INTO #T VALUES(1,0,1,0,1),(0,0,1,0,1),(1,0,1,0,0)
DECLARE
@sql VARCHAR(max)=''
SET @sql='SELECT *FROM #T WHERE 2=(0'+(SELECT '+'+name FROM tempdb.sys.columns WHERE OBJECT_ID=object_id('tempdb..#T')FOR XML PATH(''))+' )'
EXEC (@sql)


然而如果根据原题是布尔型,还需要把true转换成函数。还需要关联dbo.systypes表针对字段类型进行case操作才严谨。不过我懒得写了。。。。