Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използвайте резултата от SELECT като име на КОЛОНА в друг SELECT

Не се нуждаете от динамичен SQL, за да направите това (и динамичният SQL трябва да се избягва, ако изобщо е възможно). Вместо това можете да използвате оператор CASE. Можете да направите това с един оператор, но аз го разделих за целите на показването:

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. Как мога да търся редове около дадена стойност на низ?

  2. Грешка при автоматично създаване на файл на база данни SQLExpress за сайт, който използва AspNetSqlMembershipProvider, но низът за връзка е към SQL Server 2005

  3. 3 начина за извличане на годината от дата в SQL Server (T-SQL)

  4. Как да извлека данни от база данни на SQL Server в C#?

  5. Да се ​​приложи като върху всички колони, без да се посочват имена на всички колони?