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.