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

Cara menulis nama atribut ke kueri pemilihan secara dinamis

Tabel Anda sepertinya tidak dalam bentuk normal pertama.

Alih-alih tiga kolom untuk Period0Id ke Period2Id Anda bisa memiliki kolom untuk PeriodIndex dengan nilai (0,1,2) dan satu kolom untuk PeriodId dan kemudian hanya akan menjadi WHERE PeriodIndex = @Check

Anda tidak dapat memilih kolom menggunakan interpolasi string dengan variabel saat Anda mencoba. Anda dapat menggunakan SQL dinamis untuk membuat SQL String secara dinamis. Atau cukup hardcode opsi jika semuanya memiliki tipe data yang sama.

Select ID, 
       Name, 
       StatusId = CASE @Check WHEN 0 THEN Period0Id
                              WHEN 1 THEN Period1Id
                              WHEN 2 THEN Period2Id
                   END
From mytable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menerapkan Indikator Kinerja SQL Server untuk Kueri, Prosedur Tersimpan, dan Pemicu

  2. SQL Server:jumlah maksimum baris dalam tabel

  3. SQL Server:Kembalikan tanpa MULAI TRANSAKSI

  4. MASUKKAN MASSAL dari string yang dibatasi koma

  5. 3 Cara Mendapatkan Daftar Database di SQL Server (T-SQL)