29 lines
544 B
Transact-SQL
29 lines
544 B
Transact-SQL
SELECT *
|
|
INTO #T1
|
|
FROM (
|
|
SELECT 1 ID,'A+B' 公式
|
|
union ALL
|
|
SELECT 2 ID,'A+B+C' 公式
|
|
) tt
|
|
declare @tttt varchar(MAX),@ttt varchar(MAX)
|
|
SELECT @tttt = ISNULL(STUFF((select ' WHEN '+ CONVERT(nvarchar(100), tt.ID) + 'THEN '+ tt.公式 from #T1 tt for xml path('')),1,1,''),'')
|
|
SET @ttt = N'
|
|
SELECT tt.A,CASE tt.ID '+@tttt+' ELSE 0 END
|
|
FROM(
|
|
SELECT 1 A,2 B,3 C,1 ID
|
|
union ALL
|
|
SELECT 2 A,3 B,3 C,2 ID
|
|
union ALL
|
|
SELECT 1 A,3 B,3 C,1 ID
|
|
union ALL
|
|
SELECT 1 A,1 B,3 C,1 ID
|
|
) tt
|
|
'
|
|
--SELECT @ttt
|
|
exec(@ttt)
|
|
|
|
DROP TABLE #T1
|
|
--DROP TABLE #T2
|
|
|
|
|