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
Feltételeket ír elő egy Transact-SQL utasítás végrehajtására. A boolean_expression követő Transact-SQL utasítás (sql_statement) akkor lesz végrehajtva, ha a boolean_expression kiértékeli.TRUE Az opcionális ELSE kulcsszó egy másodlagos Transact-SQL utasítás, amely akkor lesz végrehajtva, amikor boolean_expression kiértékeli vagy FALSENULL.
Transact-SQL szintaxis konvenciók
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
Olyan kifejezés, amely visszaadja TRUE vagy FALSE. Ha a boolean_expression utasítást SELECT tartalmaz, az SELECT utasítást zárójelben kell megadni.
{ sql_statement | statement_block }
Bármely érvényes Transact-SQL utasítás vagy utasításcsoportozás az utasításblokkban meghatározottak szerint. Utasításblokk (köteg) definiálásához használja a folyamatvezérlési nyelvi kulcsszavakat BEGIN és ENDa . Bár az összes Transact-SQL utasítás érvényes egy BEGIN...END blokkon belül, bizonyos Transact-SQL utasítások nem csoportosíthatók ugyanabban a kötegben (utasításblokk).
Visszatérési típusok
Boolean
Examples
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
A. Logikai kifejezés használata
Az alábbi példában egy logikai kifejezés (1 = 1) szerepel, amely igaz, ezért az első utasítást nyomtatja ki.
IF 1 = 1 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
Az alábbi példában egy logikai kifejezés (1 = 2) hamis, ezért a második utasítást nyomtatja ki.
IF 1 = 2 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
GO
B. Lekérdezés használata logikai kifejezés részeként
Az alábbi példa egy lekérdezést hajt végre a logikai kifejezés részeként. Mivel a Product táblában 10 olyan kerékpár található, amely megfelel a WHERE záradékban foglalt feltételnek, az első nyomtatási utasítás végrehajtja. A következőre > 5válthat> 15, hogy lássa, hogyan hajthatja végre az utasítás második részét.
USE AdventureWorks2022;
GO
IF (SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
) > 5
PRINT 'There are more than 5 Touring-3000 bicycles.'
ELSE
PRINT 'There are 5 or less Touring-3000 bicycles.';
GO
C. Utasításblokk használata
Az alábbi példa egy lekérdezést hajt végre a logikai kifejezés részeként, majd a logikai kifejezés eredménye alapján kissé eltérő utasításblokkokat hajt végre. Minden utasításblokk a következővel BEGIN kezdődik és fejeződik ENDbe: .
USE AdventureWorks2022;
GO
DECLARE @AvgWeight DECIMAL(8, 2),
@BikeCount INT
IF (
SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
) > 5
BEGIN
SET @BikeCount = (
SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
SET @AvgWeight = (
SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
PRINT 'There are ' + CAST(@BikeCount AS VARCHAR(3)) + ' Touring-3000 bikes.'
PRINT 'The average weight of the top 5 Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
END
ELSE
BEGIN
SET @AvgWeight = (
SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
PRINT 'Average weight of the Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
END;
GO
D. Beágyazott HA használata... ELSE utasítások
Az alábbi példa bemutatja, hogyan ágyazható be egy IF...ELSE utasítás egy másikba. Állítsa be a változót @Number5az egyes utasítások teszteléséhez. 50500
DECLARE @Number INT;
SET @Number = 50;
IF @Number > 100
PRINT 'The number is large.';
ELSE
BEGIN
IF @Number < 10
PRINT 'The number is small.';
ELSE
PRINT 'The number is medium.';
END;
GO
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
E: Lekérdezés használata logikai kifejezés részeként
Az alábbi példa azt határozza IF...ELSE meg, hogy két válasz közül melyik jelenjen meg a felhasználó számára az adatbázis táblázatában DimProduct szereplő AdventureWorksDW2012 elem súlya alapján.
DECLARE @maxWeight FLOAT, @productKey INT;
SET @maxWeight = 100.00;
SET @productKey = 424;
IF @maxWeight <= (
SELECT [Weight]
FROM DimProduct
WHERE ProductKey = @productKey;
)
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is too heavy to ship and is only available for pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END
ELSE
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is available for shipping or pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END