Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Używanie aliasów w klauzuli Where lub alternatywnej opcji?

Nie możesz użyć aliasu w klauzuli WHERE. Powtórz wyrażenie (nieuporządkowany) lub umieść SELECT w podzapytaniu, a następnie umieść klauzulę WHERE w zewnętrznym zapytaniu:

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. Jak mogę połączyć się z zewnętrzną bazą danych z instrukcji sql lub procedury składowanej?

  2. Jak mogę przekonwertować Sql Server 2008 DateTimeOffset na DateTime?

  3. Harmonogram zadań SSIS nie działa, ale działa poprawnie w BIDS i usługach integracji MSDB

  4. klucz podstawowy i klucz obcy

  5. SQL:klauzula IF w klauzuli WHERE