Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kueri Pivot Dinamis tanpa menyimpan kueri sebagai String

Jawaban singkat: tidak.

Jawaban panjang:

Yah, itu masih tidak . Tapi saya akan mencoba menjelaskan alasannya. Mulai hari ini, ketika Anda menjalankan kueri, mesin DB menuntut untuk mengetahui struktur kumpulan hasil (jumlah kolom, nama kolom, tipe data, dll) yang akan dikembalikan oleh kueri. Oleh karena itu, Anda harus menentukan struktur kumpulan hasil ketika Anda meminta data dari DB. Pikirkan tentang ini:apakah Anda pernah menjalankan kueri di mana Anda tidak akan mengetahui struktur kumpulan hasil sebelumnya?

Itu juga berlaku bahkan ketika Anda melakukan select * , yang hanya merupakan sintaks gula. Pada akhirnya, struktur yang dikembalikan adalah "semua kolom dalam tabel tersebut".

Dengan merakit string, Anda secara dinamis menghasilkan struktur yang Anda inginkan, sebelum meminta set hasil. Itu sebabnya ia bekerja.

Terakhir, Anda harus menyadari bahwa merakit string secara dinamis dapat secara teoritis dan berpotensi (walaupun tidak mungkin) memberi Anda hasil yang ditetapkan dengan kolom tak terbatas. Tentu saja, itu tidak mungkin dan itu akan gagal, tetapi saya yakin Anda memahami implikasinya.

Perbarui

Saya menemukan ini, yang memperkuat alasan mengapa ini tidak berhasil.

Di sini :

Saya akan terus mencari dan menambahkan di sini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SCOPE_IDENTITY() untuk GUID?

  2. Buat database SQL Server 2012 yang kompatibel untuk 2008

  3. Bagaimana cara memperbarui tabel besar dengan jutaan baris di SQL Server?

  4. Hitungan hari kerja dalam bulan tertentu

  5. Membuat nama tabel yang merupakan kata/kata kunci yang dicadangkan di MS SQL Server