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

forenkle SQL-sætningen ved at bruge CTE

Brug CROSS APPLY , som kan bruges til at definere felter med alias og derefter henvise til dem:

SELECT A.a, A.b, B.c, CalculatedValue, B.d FROM dbo.TableA A INNER JOIN dbo.TableB B ON (...) CROSS APPLY (SELECT (CASE WHEN ... THEN ... ELSE ... END)) CxA(CalculatedValue) WHERE CalculatedValue BETWEEN @DayStart AND @DayEnd GROUP BY A.a, CalculatedValue, B.c

CxA er bare et alias, og du kan navngive det, hvad du vil.



  1. Postgres `gin_trgm_ops` indeks bliver ikke brugt

  2. Hvordan transponeres rækker til kolonner med store mængder af data i BigQuery/SQL?

  3. Vælg data med maks. datorækkefølge efter et andet felt

  4. SQL-kommando ikke afsluttet korrekt?