Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengubah Data Secara Dinamik dalam SQL Server dengan Lajur Dinamik?

Bagaimana untuk Mengubah Data Secara Dinamik dalam SQL Server dengan Lajur Dinamik?

DDD
Lepaskan: 2024-12-31 11:47:10
asal
183 orang telah melayarinya

How to Dynamically Pivot Data in SQL Server with Dynamic Columns?

PIVOT Pelayan SQL Dinamik untuk Lajur Dinamik

Anda mempunyai set data dengan berbilang lajur ('Name1' dan 'Name2') dan nilai lajur ('Nilai'). Anda ingin menukar data ini kepada format terpivot yang mana 'Name1' menjadi pengepala lajur dan nilainya diagregatkan oleh 'Name2'.

Penyelesaian dengan Dynamic SQL (SQL Server 2005 atau Kemudian)

Memandangkan SQL Server 2005 membenarkan SQL dinamik, anda boleh menyelesaikan masalah ini dengan memasang pertanyaan PIVOT secara dinamik. Berikut ialah kodnya:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )
Salin selepas log masuk

Pertanyaan ini akan berfungsi secara dinamik tidak kira berapa banyak nilai unik 'Name1' yang anda ada. Ia memberikan nilai 'Name1' yang dikumpul kepada pembolehubah @cols, yang kemudiannya digunakan untuk membina klausa PIVOT secara dinamik dalam pembolehubah @sqlquery. Pertanyaan terakhir kemudiannya dilaksanakan, menghasilkan output yang anda inginkan.

Sumber Tambahan:

  • [Pivot data in T-SQL](https://www.mssqltips.com/sqlservertip/1355/pivot-data-in-tsql/)
  • [Bagaimana cara saya membina ringkasan dengan menyertai satu jadual dengan SQL Pelayan?](https://stackoverflow.com/questions/260660/how-do-i-build-a-summary-by-joining-to-a-single-table-with-sql-server)
  • [PIVOT Dinamik dengan dinamik lajur](https://stackoverflow.com/questions/8248059/pivot-with-dynamic-columns-in-sql-server-2005)

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data Secara Dinamik dalam SQL Server dengan Lajur Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan