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

Използване на псевдоними в клаузата Where или алтернативна опция?

Не можете да използвате псевдонима в клаузата WHERE. Или повторете израза (объркано), или поставете своя SELECT в подзаявка и след това поставете клаузата WHERE във външната заявка:

SELECT Id, Name, City, State
FROM
(
     SELECT
         ID, 
         Name,
         CASE T.N 
             WHEN 1 THEN City1
             WHEN 2 THEN City2
             WHEN 3 THEN City3
         END AS City,
         CASE T.N 
             WHEN 1 THEN State1
             WHEN 2 THEN State2
             WHEN 3 THEN State3
         END AS State
     FROM YourTable
     CROSS JOIN (VALUES(1),(2),(3)) AS T(N)
) T1
WHERE City IS NOT NULL


  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. Задайте начална стойност за колона с автоматично увеличение

  3. Трябва ли MAMP да върне ::1 като IP на localhost?

  4. Използване на SqlDependency с именувани опашки

  5. T-SQL съхранена процедура за връщане на предложени от Google резултати от търсенето