Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Az SQL Server adatbázismotor által kiértékelt szimbólumok és operátorok kombinációja egyetlen adatérték lekérésére. Az egyszerű kifejezések lehetnek egyetlen állandó, változó, oszlop vagy skaláris függvény. Az operátorok két vagy több egyszerű kifejezés összetett kifejezésbe illesztésére használhatók.
Transact-SQL szintaxis konvenciók
Syntax
Az SQL Server és az Azure SQL Database szintaxisa.
{ constant | scalar_function | [ table_name. ] column | variable
| ( expression ) | ( scalar_subquery )
| { unary_operator } expression
| expression { binary_operator } expression
| ranking_windowed_function | aggregate_windowed_function
}
Az Azure Synapse Analytics és a párhuzamos adattárház szintaxisa.
-- Expression in a SELECT statement
<expression> ::=
{
constant
| scalar_function
| column
| variable
| ( expression )
| { unary_operator } expression
| expression { binary_operator } expression
}
[ COLLATE Windows_collation_name ]
-- Scalar Expression in a DECLARE , SET , IF...ELSE , or WHILE statement
<scalar_expression> ::=
{
constant
| scalar_function
| variable
| ( expression )
| (scalar_subquery )
| { unary_operator } expression
| expression { binary_operator } expression
}
[ COLLATE [ Windows_collation_name ] ]
Arguments
konstans
Egyetlen, konkrét adatértéket jelképező szimbólum. További információért lásd: Állandók.
scalar_function
Egy Transact-SQL szintaxis egysége, amely egy adott szolgáltatást biztosít, és egyetlen értéket ad vissza.
scalar_function lehetnek beépített skaláris függvények, például a SUM, GETDATE(), vagy CAST függvények vagy skaláris felhasználó által definiált függvények.
table_name
Egy tábla neve vagy aliasa.
column
Egy oszlop neve. Egy kifejezésben csak az oszlop neve engedélyezett.
variable
Egy változó vagy paraméter neve. További információért lásd DECLARE @local_variable.
expression
A cikkben meghatározott érvényes kifejezések. A zárójelek olyan csoportosítási operátorok, amelyek biztosítják, hogy a zárójelen belüli kifejezés összes operátora kiértékelve legyen, mielőtt az eredményként kapott kifejezés össze lesz vonva egy másikkal.
scalar_subquery
Egy alquery, amely egy értéket ad vissza. Például:
SELECT MAX(UnitPrice)
FROM Products;
unary_operator
A nem naplós operátorok csak olyan kifejezésekre alkalmazhatók, amelyek a numerikus adattípus kategória bármelyik adattípusára kiértékelnek. Egy olyan operátor, amelynek csak egy numerikus operandusa van:
-
+pozitív számot jelez -
-negatív számot jelez -
~a komplementer operátort jelzi
binary_operator
Egy operátor, amely meghatározza, hogy a két kifejezés hogyan kombinálható egyetlen eredmény eléréséhez.
binary_operator lehet aritmetikai operátor, a hozzárendelési operátor (=), a bitenkénti operátor, az összehasonlító operátor, a logikai operátor, a sztringösszefűző operátor (+) vagy egy nem szereplő operátor. Az operátorokról további információt az Operátorok című témakörben talál.
ranking_windowed_function
Bármely Transact-SQL rangsorolási függvény. További információ: Rangsorolási függvények.
aggregate_windowed_function
Bármely Transact-SQL aggregátumfüggvény az OVER záradékkal. További információ: SELECT – OVER záradék.
Kifejezési eredmények
Egyetlen állandóból, változóból, skaláris függvényből vagy oszlopnévből álló egyszerű kifejezés esetén: a kifejezés adattípusa, rendezése, pontossága, skálázása és értéke a hivatkozott elem adattípusa, rendezése, pontossága, skálázása és értéke.
Ha két kifejezés összehasonlítási vagy logikai operátorok használatával van kombinálva, az eredményül kapott adattípus logikai, az érték pedig a következő: TRUE, FALSEvagy UNKNOWN. A logikai adattípusokról további információt az Összehasonlító operátorok című témakörben talál.
Ha két kifejezés aritmetikai, bitenkénti vagy sztring operátorral van kombinálva, az operátor határozza meg az eredményül kapott adattípust.
A számos szimbólumból és operátorból álló összetett kifejezések egyetlen értékre értékelnek. Az eredményként kapott kifejezés adattípusát, rendezését, pontosságát és értékét az összetevőkifejezések egyesítése határozza meg egyszerre kettővel, amíg el nem éri a végeredményt. A kifejezések kombinálásának sorrendjét a kifejezés operátorainak elsőbbsége határozza meg.
Remarks
Két kifejezés kombinálható egy operátorral, ha mindkettő rendelkezik az operátor által támogatott adattípusokkal, és az alábbi feltételek közül legalább az egyik igaz:
A kifejezések adattípusa megegyezik.
Az alacsonyabb elsőbbséget élvező adattípus implicit módon konvertálható a magasabb adattípus-előzményű adattípusra.
Ha a kifejezések nem felelnek meg ezeknek a feltételeknek, a függvények vagy CAST függvények CONVERT használhatók. Az alacsonyabb elsőbbséget élvező adattípus használata CAST vagy CONVERT explicit konvertálása a magasabb előzményű adattípusra vagy köztes adattípusra, amely implicit módon konvertálható a magasabb előzményű adattípusra.
Ha nincs támogatott implicit vagy explicit konverzió, a két kifejezés nem kombinálható.
A karaktersztringre kiértékelt kifejezések rendezése a rendezési sorrend szabályainak követésével van beállítva. További információért lásd: Rendezési sorrend.
Egy olyan programozási nyelvben, mint a C vagy a Microsoft Visual Basic, a kifejezés mindig egyetlen eredményre értékel. A Transact-SQL lista kifejezései a szabály egyik változatát követik: A kifejezés kiértékelése külön-külön történik az eredményhalmaz minden sorához. Egyetlen kifejezésnek más értéke lehet az eredményhalmaz minden sorában, de minden sornak csak egy értéke van a kifejezéshez. Az alábbi SELECT utasításban például a kiválasztási listában szereplő hivatkozás ProductID és kifejezés 1+2 is kifejezés:
USE AdventureWorks2022;
GO
SELECT ProductID, 1 + 2
FROM Production.Product;
GO
A kifejezés 1+2 kiértékelése 3 az eredményhalmaz minden sorában történik. Bár a kifejezés ProductID minden eredményhalmaz sorában egyedi értéket hoz létre, minden sorhoz csak egy érték tartozik ProductID.
- Az Azure Synapse Analytics rögzített maximális memóriamennyiséget foglal le minden szálhoz, így egyetlen szál sem használhatja fel az összes memóriát. A memória egy része a lekérdezések kifejezéseinek tárolására szolgál. Ha egy lekérdezés túl sok kifejezést használ, és a szükséges memória meghaladja a belső korlátot, a motor nem hajtja végre. A probléma elkerülése érdekében a felhasználók több lekérdezésre módosíthatják a lekérdezést, mindegyikben kisebb számú kifejezéssel. Van például egy lekérdezése a WHERE záradékban található kifejezések hosszú listájával:
DELETE
FROM dbo.MyTable
WHERE (c1 = '0000001' AND c2 = 'A000001')
OR (c1 = '0000002' AND c2 = 'A000002')
OR (c1 = '0000003' AND c2 = 'A000003')
/* ... additional, similar expressions omitted for simplicity */
A lekérdezés módosítása a következőre:
DELETE FROM dbo.MyTable WHERE (c1 = '0000001' AND c2 = 'A000001');
DELETE FROM dbo.MyTable WHERE (c1 = '0000002' AND c2 = 'A000002');
DELETE FROM dbo.MyTable WHERE (c1 = '0000003' AND c2 = 'A000003');
/* ... refactored, individual DELETE statements omitted for simplicity */
Kapcsolódó tartalom
- IDŐZÓNÁBAN (Transact-SQL)
- ESET (Transact-SQL)
- CAST és CONVERT (Transact-SQL)
- SZÖVETKEZET (Transact-SQL)
- adattípus-átalakítás (adatbázismotor)
- Adattípus elsőbbsége (Transact-SQL)
- Adattípusok (Transact-SQL)
- Mik az SQL Database-függvények?
- MINT (Transact-SQL)
- NULLIF (Transact-SQL)
- VÁLASZT (Transact-SQL)
- AHOL (Transact-SQL)