存储过程如下SELECT TOP 8000 ID=IDENTITY(INT,1,1) INTO # FROM SYSOBJECTS A,SYSOBJECTS B
DECLARE @sql VARCHAR(8000)SET @sql = ''SELECT T_ID =IDENTITY(INT,1,1),A.ID,S=SUBSTRING(col,b.id,CHARINDEX('?,col+'?,b.id)-b.id)
INTO #1
FROM 
(SELECT top 25 ID,col=REPLACE(col,' ',''),col_v FROM nd_lhsj ) A, # B
WHERE B.id <= LEN(col+'?) AND CHARINDEX('?,'?+col,b.id) =b.id
ORDER BY A.ID,B.ID
SELECT T_ID =IDENTITY(INT,1,1),col,Value=SUBSTRING(col_v,b.id,CHARINDEX('?,col_v+'?,b.id)-b.id)
INTO #2
FROM 
(SELECT top 25 ID,col=REPLACE(col,' ',''),col_v FROM nd_lhsj ) A, # B
WHERE B.id <=LEN(col_v+'?) AND CHARINDEX('?,'?+col_v,b.id) = b.id
ORDER BY A.ID,B.ID
SELECT @sql = @sql+',['+s+'] = CAST(ISNULL(MAX(CASE WHEN S = '''+S+'''
THEN Value END),'''') AS VARCHAR(100))'
FROM #1 GROUP BY S
SET @sql = 'SELECT '+STUFF(@sql,1,1,'')EXEC(@sql+',A.id 
FROM #1 A LEFT JOIN #2 B ON A.T_ID = B.T_ID 
GROUP BY A.ID ORDER BY A.ID')DROP TABLE #,#1,#2
我家了top 25排序是正确的 可去掉取全部数据就出错 问题出在什么一直检查不出来。。晕为这存储分都光调了