sql >> Databáze >  >> RDS >> Sqlserver

zjednodušit příkaz SQL pomocí CTE

Použijte CROSS APPLY , který lze použít k definování aliasovaných polí a poté na ně odkazovat:

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 je jen alias a můžete si jej pojmenovat, jak chcete.



  1. Připojení JDBC – Class.forName vs Class.forName().newInstance?

  2. Někdy MŮŽETE převést sloupec na místě

  3. Mám navrhnout tabulku s primárním klíčem varchar nebo int?

  4. Přidání výsledků databáze do pole