Daha
Sql Server'da satırları sütunlara verimli bir şekilde dönüştürme
SQL server'da satırları sütunlara dönüştürmenin etkili bir yolunu arıyorum, PIVOT'un çok hızlı olmadığını duydum ve çok sayıda kayıtla uğraşmam gerekiyor.
Bu benim örneğim:
-------------------------------
| Id | Value | ColumnName |
-------------------------------
| 1 | John | FirstName |
| 2 | 2.4 | Amount |
| 3 | ZH1E4A | PostalCode |
| 4 | Fork | LastName |
| 5 | 857685 | AccountNumber |
-------------------------------
Bu benim sonucum:
---------------------------------------------------------------------
| FirstName |Amount| PostalCode | LastName | AccountNumber |
---------------------------------------------------------------------
| John | 2.4 | ZH1E4A | Fork | 857685 |
---------------------------------------------------------------------
Sonucu nasıl oluşturabilirim?
358
2
Birden fazla satırdaki verileri sütunlara dönüştürmenin birkaç yolu vardır.
PIVOT
KullanımıSQL Server'da verileri satırlardan sütunlara dönüştürmek için
PIVOT
fonksiyonunu kullanabilirsiniz:Bkz. Demo.
Bilinmeyen sayıda
columnnames
ile pivotTranspoze etmek istediğiniz bilinmeyen sayıda
sütunadı
varsa, dinamik SQL kullanabilirsiniz:Bkz. Demo.
Bir toplama işlevi kullanma
PIVOT
fonksiyonunu kullanmak istemiyorsanız, bir
CASE` ifadesi ile bir toplama fonksiyonu kullanabilirsiniz:Bkz. Demo.
Çoklu birleştirmeler kullanma
Bu, çoklu birleştirme kullanılarak da tamamlanabilir, ancak her bir satırı ilişkilendirmek için örnek verilerinizde bulunmayan bir sütuna ihtiyacınız olacaktır. Ancak temel sözdizimi şöyle olacaktır:
Verileri pivotlamak hala çok popüler olduğu için kendimce bir şeyler eklemeye karar verdim. Bu, tek bir komut dosyasından ziyade bir yöntemdir, ancak size çok daha fazla olasılık sunar. Her şeyden önce dağıtmanız gereken 3 betik var:
ColumnActionList
] -> verileri parametre olarak tutarproc_PivotPrepare
] -> verilerimizi hazırlarproc_PivotExecute
] -> komut dosyasını çalıştırın