sql >> Database >  >> RDS >> Sqlserver

vereenvoudig de SQL-instructie met behulp van CTE

Gebruik CROSS APPLY , die kan worden gebruikt om alias-velden te definiëren en er vervolgens naar te verwijzen:

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

De CxA is slechts een alias en je kunt het noemen wat je wilt.



  1. Windows Phone 8.1-app maakt verbinding met een database

  2. Wat is de beste werkwijze om specifieke pagina's te beperken tot alleen ingelogde gebruikers in Codeigniter?

  3. Geavanceerde MySql-query:tabel bijwerken met informatie uit een andere tabel

  4. Een Oracle Connection wel of niet sluiten?