0

変数を宣言して、次のことを行いたい:

Select     
cast (SUM(case when @Dummy is not null then 1 else 0 end)*1.0/443321 as decimal(10,5)) @Dummy    
FROM hellotable
WHERE @Dummy in ("100 different field names in hellotable")

しかし、これは機能していません...助けていただければ幸いです。

4

2 に答える 2

0

動的SQLでそれをやってみてください..

DECLARE @dummy sysname
DECLARE @SQL NVARCHAR(MAX)

SELECT @SQL = 'SELECT  CAST (SUM(CASE WHEN '+ @Dummy +N' IS NOT NULL THEN 1
                       ELSE 0
                  END) * 1.0 / 443321 AS DECIMAL(10, 5)) '+ @Dummy +N'     
                FROM    hellotable
                WHERE   '+ @Dummy +N'  IN ( '' )'
EXEC (@SQL)
于 2013-06-18T22:42:57.257 に答える