CREATE TABLE [LG_GJMX] (
[ID] [varchar] (50) NULL ,
[作业单位] [varchar] (50) NULL ,
[工价] [numeric](18, 0) NULL
)
DECLARE @SQL NVARCHAR(4000)
DECLARE @ZYDW VARCHAR(50)
SELECT DISTINCT(ID) INTO #TEMP FROM LG_GJMX
SELECT * INTO #TEMP1 FROM LG_GJMX
DECLARE CURZYDW CURSOR FOR
SELECT DISTINCT(作业单位) FROM LG_GJMX
OPEN CURZYDW
FETCH NEXT FROM CURZYDW INTO @ZYDW
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = 'ALTER TABLE #TEMP ADD ' + @ZYDW + ' NUMERIC(18,3)'
EXECUTE SP_EXECUTESQL @SQL
SET @SQL = 'UPDATE #TEMP
SET #TEMP.' + @ZYDW + ' = #TEMP1.工价
FROM #TEMP,#TEMP1
WHERE #TEMP.ID = #TEMP1.ID
AND #TEMP1.作业单位=''' + @ZYDW + ''''
EXECUTE SP_EXECUTESQL @SQL
FETCH NEXT FROM CURZYDW INTO @ZYDW
END
CLOSE CURZYDW
DEALLOCATE CURZYDW
SELECT * FROM #TEMP
DROP TABLE #TEMP
DROP TABLE #TEMP1
Mssql表数据行转列
最新推荐文章于 2025-03-07 23:09:33 发布