Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Kombinace symbolů a operátorů, které databázový stroj SQL Serveru vyhodnotí za účelem získání jedné datové hodnoty. Jednoduché výrazy můžou být jedna konstanta, proměnná, sloupec nebo skalární funkce. Operátory lze použít ke spojení dvou nebo více jednoduchých výrazů do komplexního výrazu.
Syntax
Syntaxe pro SQL Server a Azure SQL Database
{ constant | scalar_function | [ table_name. ] column | variable
| ( expression ) | ( scalar_subquery )
| { unary_operator } expression
| expression { binary_operator } expression
| ranking_windowed_function | aggregate_windowed_function
}
Syntaxe pro Azure Synapse Analytics a paralelní datový sklad
-- 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
konstanta
Symbol, který představuje jednu konkrétní datovou hodnotu. Další informace naleznete v tématu Konstanty.
scalar_function
Jednotka Transact-SQL syntaxe, která poskytuje konkrétní službu a vrací jednu hodnotu.
scalar_function mohou být integrované skalární funkce, jako SUMjsou funkce , GETDATE()nebo CAST funkce nebo skalární uživatelem definované funkce.
table_name
Název nebo alias tabulky.
column
Název sloupce. Ve výrazu je povolený pouze název sloupce.
variable
Název proměnné nebo parametru. Další informace najdete v tématu DECLARE @local_variable.
expression
Libovolný platný výraz definovaný v tomto článku. Závorky jsou operátory seskupení, které zajišťují, aby se všechny operátory ve výrazu v závorkách vyhodnocovaly před sloučením výsledného výrazu s jiným.
scalar_subquery
Poddotaz, který vrátí jednu hodnotu. Například:
SELECT MAX(UnitPrice)
FROM Products;
unary_operator
Unární operátory lze použít pouze na výrazy, které se vyhodnocují na libovolný z datových typů kategorie číselného datového typu. Je operátor, který má pouze jeden číselný operand:
-
+označuje kladné číslo. -
-označuje záporné číslo. -
~označuje operátor doplňku daného operátoru.
binary_operator
Operátor, který definuje způsob, jakým se dva výrazy zkombinují, aby vznikl jediný výsledek.
binary_operator může být aritmetický operátor, operátor přiřazení (=), bitový operátor, relační operátor, logický operátor, operátor zřetězení řetězce (+) nebo unární operátor. Další informace o operátorech naleznete v tématu Operátory.
ranking_windowed_function
Libovolná Transact-SQL funkce řazení. Další informace naleznete v tématu Funkce řazení.
aggregate_windowed_function
Libovolná Transact-SQL agregační funkce s klauzulí OVER. Další informace naleznete v tématu SELECT - OVER klauzule.
Výsledky expresí
Jednoduchý výraz tvořený jednou konstantou, proměnnou, skalární funkcí nebo názvem sloupce: datový typ, kolace, přesnost, měřítko a hodnota výrazu je datový typ, kolace, přesnost, měřítko a hodnota odkazovaného prvku.
Pokud jsou dva výrazy sloučeny pomocí porovnání nebo logických operátorů, výsledný datový typ je logický a hodnota je: TRUE, FALSEnebo UNKNOWN. Další informace o logických datových typech naleznete v tématu Relační operátory.
Pokud se dva výrazy zkombinují pomocí aritmetických, bitových nebo řetězcových operátorů, operátor určí výsledný datový typ.
Komplexní výrazy tvořené mnoha symboly a operátory se vyhodnocují jako výsledek s jednou hodnotou. Datový typ, kolace, přesnost a hodnota výsledného výrazu je určen kombinováním výrazů komponent, dvou po sobě, dokud nedosáhne konečného výsledku. Posloupnost, ve které jsou výrazy kombinovány, je definována prioritou operátorů ve výrazu.
Remarks
Dva výrazy mohou být kombinovány operátorem, pokud oba mají datové typy podporované operátorem, a alespoň jedna z těchto podmínek je pravdivá:
Výrazy mají stejný datový typ.
Datový typ s nižší prioritou lze implicitně převést na datový typ s vyšší prioritou datového typu.
Pokud výrazy tyto podmínky nesplňují, CASTCONVERT je možné použít tyto funkce.
CAST Datový CONVERT typ s nižší prioritou můžete explicitně převést na datový typ s vyšší prioritou nebo na zprostředkující datový typ, který lze implicitně převést na datový typ s vyšší prioritou.
Pokud neexistuje žádný podporovaný implicitní ani explicitní převod, nelze tyto dva výrazy zkombinovat.
Kolace libovolného výrazu, který se vyhodnotí jako řetězec znaku, je nastavena podle pravidel priority kolace. Další informace naleznete v tématu Priorita kolace.
V programovacím jazyce, jako je C nebo Microsoft Visual Basic, se výraz vždy vyhodnotí jako jeden výsledek. Výrazy v seznamu Transact-SQL výběr se řídí variantou tohoto pravidla: Výraz se vyhodnocuje jednotlivě pro každý řádek v sadě výsledků. Jeden výraz může mít v každém řádku sady výsledků jinou hodnotu, ale každý řádek má pro výraz pouze jednu hodnotu. Například v následujícím SELECT příkazu jsou odkazy na ProductID a termín 1+2 v seznamu select výrazy:
USE AdventureWorks2022;
GO
SELECT ProductID, 1 + 2
FROM Production.Product;
GO
Výraz 1+2 se vyhodnotí jako 3 v každém řádku v sadě výsledků. Přestože výraz ProductID vygeneruje jedinečnou hodnotu v každém řádku sady výsledků, každý řádek má pouze jednu hodnotu pro ProductID.
- Azure Synapse Analytics přiděluje každému vláknu pevné maximální množství paměti, takže žádné vlákno nemůže využívat veškerou paměť. Některá z těchto pamětí se používá k ukládání výrazů dotazů. Pokud dotaz obsahuje příliš mnoho výrazů a jeho požadovaná paměť překročí interní limit, modul ho nespustí. Aby se tomuto problému zabránilo, můžou uživatelé dotaz změnit na více dotazů s menším počtem výrazů v každé z nich. Máte například dotaz s dlouhým seznamem výrazů v klauzuli WHERE:
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 */
Změňte tento dotaz na:
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 */
Související obsah
- V ČASOVÉM PÁSMU (Transact-SQL)
- PŘÍPAD (Transact-SQL)
- CAST a CONVERT (Transact-SQL)
- KOALESCE (Transact-SQL)
- převodu datových typů (databázový stroj)
- Priorita datového typu (Transact-SQL)
- Datové typy (Transact-SQL)
- Jaké jsou funkce databáze SQL?
- JAKO (Transact-SQL)
- NULLIF (Transact-SQL)
- SELECT (Transact-SQL)
- KDE (Transact-SQL)