Mit tud a WITH AS?
Segítségével az SQL lekérdezésünkből kiemelhetjük a beágyazott lekérdezéseket, és helyettük egy 'alias'-szal, egy névvel hivatkozhatunk rájuk. Pont úgy, mintha tábla vagy view lennének. Ez tapasztalataim szerint meggyorsítja a komplex lekérdezések futtatását, átláthatóbbá teszi a SELECT utasítást.
Hogyan használjuk?
Az így kiemelt beágyazott lekérdezéseket még a fő lekérdezés (ami a beágyazott lekérdezésekből olvas) futtatása előtt definiálnunk kell. Lehetőség van több ilyen "átmeneti tábla" létrehozására is a 'WITH AS' kifejezés után.
Példa:
WITH CTE_Tabla1 AS 
 (
  SELECT Mezo1, Mezo2, Mezo3 FROM tbl_Vers
  WHERE Mezo4 in ('Ecc', 'Pecc', 'Kimehetsz')
 ),
CTE_Tabla2 AS
 (SELECT Field1, Field2 FROM tbl_Mondoka
  WHERE Field3 = 'Holnapután bejöhetsz'
 )
SELECT * 
   FROM CTE_Tabla1 Inner Join CTE_Tabla2 ON CTE_Tabla1.Mezo1 = CTE_Tabla2.Field1
                       Inner Join tbl_AltatoMese ON CTE_Tabla2.Field2 = tbl_AltatoMese.ID
Egyéb tudnivalók:
- Az utolsó SELECT-ben fel kell használnunk az összes definiált "átmeneti táblát", különben nem fut le a lekérdezés
 - Az utolsó SELECT utasításban az így létrehozott "táblákból" csak az ott megadott mezőneveket használhatjuk.
 - Használható a VIEW készítés során is!
 
0 megjegyzés:
Megjegyzés küldése