Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Транспонирайте набор от редове като колони в SQL Server 2000

Примерът на http://jdixon.dotnetdevelopersjournal.com/pivot_table_data_in_sql_server_2000_and_2005.htm работи само ако знаете предварително какви могат да бъдат стойностите на редовете. Например, да приемем, че имате обект с персонализирани атрибути и персонализираните атрибути са имплементирани като редове в дъщерна таблица, където дъщерната таблица е основно двойки променлива/стойност и тези двойки променлива/стойност са конфигурируеми.

color red
size  big
city  Chicago

Ще опиша техника, която работи. аз съм го използвал. НЕ го популяризирам, но работи.

За да завъртите данните, където не знаете какви стойности могат да бъдат предварително, създайте временна таблица в движение без колони. След това използвайте курсора, за да преминете през редовете си, като издадете динамично изградена „alter table“ за всяка променлива, така че в крайна сметка вашата временна таблица да има колони, цвят, размер, град.

След това вмъквате един ред във вашата временна таблица, актуализирате го чрез друг курсор през променливата, двойки стойности и след това го избирате, обикновено свързан с неговия родителски обект, което на практика прави да изглежда, че тези персонализирани двойки променлива/стойност са като вградени- в колони в оригиналния родителски обект.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL клиент за Mac OS X, който работи с MS SQL Server

  2. SQL Server Passthrough заявка като основа за набор от записи DAO в Access

  3. Трябва ли да използвам правилото CASCADE DELETE?

  4. Групова актуализация в C#

  5. Какво е МЕЖДУ логически оператор в SQL Server - SQL Server / TSQL урок, част 124