Mencoba menemukan beberapa contoh SQL Server PIVOT sederhana. Sebagian besar contoh yang saya temukan melibatkan penghitungan atau penjumlahan angka. Saya hanya ingin melakukan pivot pada beberapa data string. Misalnya, saya memiliki kueri yang mengembalikan yang berikut ini.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Saya ingin menggunakan PIVOT (jika mungkin) untuk membuat hasil seperti ini:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
Apakah ini mungkin dengan fungsionalitas PIVOT?
sql-server
tsql
pivot
Tim Cochran
sumber
sumber
Jawaban:
Ingatlah bahwa fungsi agregat MAX akan berfungsi pada teks serta angka. Kueri ini hanya akan meminta tabel dipindai satu kali.
sumber
...ELSE NULL END...
daripada...ELSE '' END...
?Pengaturan meja:
Meja Anda:
SELECT action, view_edit FROM dbo.tbl
Kueri tanpa menggunakan PIVOT:
Query menggunakan PIVOT:
Kedua kueri tersebut menghasilkan:
sumber
Jika Anda secara khusus ingin menggunakan fungsi SQL Server PIVOT, maka ini akan berfungsi, dengan asumsi dua kolom asli Anda disebut act dan cmd. (Tapi tidak terlalu cantik untuk dilihat.)
sumber
Dari http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/ :
sumber
Nah, untuk sampel Anda dan yang memiliki jumlah kolom unik terbatas, ini harus dilakukan.
sumber
sumber
Saya mengalami situasi di mana saya mengurai string dan dua posisi pertama dari string yang dimaksud adalah nama bidang standar pengkodean klaim perawatan kesehatan. Jadi saya akan menghapus string dan mendapatkan nilai untuk F4, UR dan UQ atau yang lainnya. Ini bagus pada satu catatan atau beberapa catatan untuk satu pengguna. Tetapi ketika saya ingin melihat ratusan catatan dan nilai untuk semua pengguna, itu harus PIVOT. Ini luar biasa terutama untuk mengekspor banyak rekaman agar unggul. Permintaan pelaporan khusus yang saya terima adalah "setiap kali seseorang mengajukan klaim untuk Benadryl, nilai apa yang mereka kirimkan di bidang F4, UR, dan UQ. Saya memiliki OUTER APPLY yang membuat ColTitle dan bidang nilai di bawahnya
sumber