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

Gunakan hasil SELECT sebagai nama COLUMN di SELECT lainnya

Anda tidak perlu SQL dinamis untuk melakukan ini (dan SQL dinamis harus dihindari jika memungkinkan). Sebagai gantinya, Anda dapat menggunakan pernyataan CASE. Anda dapat melakukan ini dengan satu pernyataan tetapi saya telah membaginya untuk tujuan tampilan:

DECLARE @brand VARCHAR(100) = (SELECT brand FROM articles a WHERE a.id='12345678')

SELECT CASE @brand
           WHEN 'BRAND_A' THEN BRAND_A_PRICE
           WHEN 'BRAND_B' THEN BRAND_B_PRICE
           WHEN 'BRAND_C' THEN BRAND_C_PRICE
           ELSE 0 END AS PRICE
FROM prices
WHERE id='12345678'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbedaan antara gabungan kiri dan gabungan kanan di SQL Server

  2. kesalahan 'datetime2' saat menggunakan kerangka kerja entitas di VS 2010 .net 4.0

  3. nomor port SQL Server

  4. SQL Server:haruskah saya menggunakan tabel information_schema di atas tabel sistem?

  5. Cara Memperbaiki "Prosedur mengharapkan parameter '@ pernyataan' dari jenis 'ntext/nchar/nvarchar'." Kesalahan dalam SQL Server