sql >> Databasteknik >  >> RDS >> Sqlserver

Använda alias i Where-klausul eller ett alternativt alternativ?

Du kan inte använda aliaset i WHERE-satsen. Upprepa uttrycket (stökigt) eller så lägg ditt SELECT i en underfråga och lägg sedan in WHERE-satsen i den yttre frågan:

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. Hur subtraherar man en till månaden för ett datumformat i mysql?

  2. Hur man ställer in en anslutningstimeout beroende på användarinloggning i MySQL

  3. Är Sphinx beta okej att använda i produktionen?

  4. php - laravel :Hur hanterar man tidsöverlappning i databasen?