sql >> Database teknologi >  >> RDS >> Sqlserver

Brug af aliaser i Where-klausul eller en alternativ mulighed?

Du kan ikke bruge aliaset i WHERE-sætningen. Gentag enten udtrykket (rodet), ellers læg dit SELECT i en underforespørgsel og indsæt derefter WHERE-sætningen i den ydre forespørgsel:

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. Accelereret databasegendannelse i SQL Server 2019

  2. Node.js Bruger async/await med mysql

  3. FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek den manual, der svarer til din MySQL-serverversion, for at se den rigtige syntaks at bruge

  4. Venskabssystem SQL-struktur og forespørgsel