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.
Vonatkozik a következőkre: SQL Server 2022 (16.x) és későbbi verziók
, Azure SQL Database,
Azure SQL Managed Instance
,Azure Synapse Analytics,
SQL database in Microsoft Fabric
Ez a függvény egy vagy több kifejezésből álló listából származó minimális értéket adja vissza.
Transact-SQL szintaxis konvenciók
Szemantika
LEAST ( expression1 [ , ...expressionN ] )
Arguments
expression1, expressionN
Bármely hasonló adattípus vesszővel elválasztott kifejezéseinek listája. A LEAST függvény legalább egy argumentumot igényel, és legfeljebb 254 argumentumot támogat.
Minden kifejezés lehet állandó, változó, oszlopnév vagy függvény, valamint bármilyen aritmetikai, bitszerű és string operátorok kombinációja. Aggregált függvények és skaláris allekérdezések engedélyezettek.
Visszatérési típusok
Visszaadja a legmagasabb prioritású adattípust a függvényhez átadott típusok halmazából. További információ: Adattípus elsőbbsége (Transact-SQL).
Ha minden argumentum azonos adattípusú, és a típus támogatott az összehasonlításhoz, LEAST akkor az adott típus adja vissza.
Ellenkező esetben a függvény implicit módon az összes argumentust a legmagasabb prioritású adattípusra konvertálja az összehasonlítás előtt, és ezt a típust használja visszaküldési típusként.
Numerikus típusok esetén a visszaadó típus skálája megegyezik a legmagasabb precedencia argumentummal, vagy a legnagyobb skála, ha több érv is a legmagasabb precedensű adattípusú.
Megjegyzések
Az argumentumok listáján minden kifejezésnek olyan adattípusúnak kell lennie, amely összehasonlítható, és implicit módon átalakítható az érv legmagasabb prioritású adattípusára.
Az összes érv implicit átalakítása a legmagasabb prioritású adattípusra történik az összehasonlítás előtt.
Ha az argumentumok közötti implicit típusátalakítás nem támogatott, a függvény meghibásodik és hibát ad.
További információért az implicit és explicit átalakításról lásd: Adattípus-átalakítás (Adatbázis Motor).
Ha egy vagy több érv nem NULLaz, akkor NULL az érvek az összehasonlítás során figyelmen kívül hagyják. Ha minden érv , NULLakkor LEAST visszaadja NULL.
A karakterargumentumok összehasonlítása a Collation Precedence (Transact-SQL) szabályait követi.
A következő típusok nem támogatottak összehasonlításra: LEASTvarchar(max), varbinary(max) vagy nvarchar(max) 8 000 bájtos feletti értékek, kurzor, geometria, földrajz, kép, nem bájt-sorolt felhasználó által definiált típusok, ntext, táblázat, szöveg és xml.
A varchar(max), varbinary(max) és nvarchar(max) adattípusok támogatottak olyan argumentumok esetén, amelyek 8 000 bájtos vagy annál rövidebbek, és az összehasonlítás előtt implicit módon varchar(n), varbinary(n) és nvarchar(n)-re konvertálódnak.
Például a varchar(max) akár 8 000 karaktert is támogathat, ha egybájtos kódolást használ, míg a nvarchar(max) akár 4 000 bájtpárt is támogathat (feltételezve az UTF-16 karakterkódolást).
Példák
A. Minimum értéket adjunk vissza egy állandó listából
A következő példa adja vissza a megadott állandók listájából származó minimális értéket.
A visszaadó típus skálája a legmagasabb prioritású adattípus érvelésének skálája határozza meg.
SELECT LEAST('6.62', 3.1415, N'7') AS LeastVal;
GO
Itt van az eredmények összessége.
LeastVal
-------
3.1415
(1 rows affected)
B. A karaktertípusok listájából származó minimális érték visszaadása
A következő példa adja vissza a megadott karakterállandók listáján a minimális értéket.
SELECT LEAST('Glacier', N'Joshua Tree', 'Mount Rainier') AS LeastString;
GO
Itt van az eredmények összessége.
LeastString
-------------
Glacier
(1 rows affected)
C. A minimális értéket az oszlopargumentumok listájából
Ez a példa a minimális értéket adja vissza egy oszlopargumentumok listájából, és az összehasonlítás során figyelmen kívül NULL hagyja az értékeket. Ez a minta az AdventureWorksLT adatbázist használja, amely gyorsan telepíthető egy új Azure SQL adatbázis mintaadatbázisaként. További információ: AdventureWorks-mintaadatbázisok.
SELECT P.Name,
P.SellStartDate,
P.DiscontinuedDate,
PM.ModifiedDate AS ModelModifiedDate,
LEAST(P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate) AS EarliestDate
FROM SalesLT.Product AS P
INNER JOIN SalesLT.ProductModel AS PM
ON P.ProductModelID = PM.ProductModelID
WHERE LEAST(P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate) >= '2007-01-01'
AND P.SellStartDate >= '2007-01-01'
AND P.Name LIKE 'Touring %'
ORDER BY P.Name;
Itt van az eredmények összessége.
EarliestDate a három érték közül a legkisebb dátumértéket választja, figyelmen kívül NULLhagyva .
Name SellStartDate DiscontinuedDate ModelModifiedDate EarliestDate
---------------------- ----------------------- ------------------- ----------------------- -----------------------
Touring Pedal 2007-07-01 00:00:00.000 NULL 2009-05-16 16:34:29.027 2007-07-01 00:00:00.000
Touring Tire 2007-07-01 00:00:00.000 NULL 2007-06-01 00:00:00.000 2007-06-01 00:00:00.000
Touring Tire Tube 2007-07-01 00:00:00.000 NULL 2007-06-01 00:00:00.000 2007-06-01 00:00:00.000
(3 rows affected)
D. Használat LEAST lokális változókkal
Ez a példa a klauzula predikátumán WHERE belüli lokális változók listájának minimális értékének meghatározására LEAST szolgál.
CREATE TABLE dbo.Studies (
VarX VARCHAR(10) NOT NULL,
Correlation DECIMAL(4, 3) NULL
);
INSERT INTO dbo.Studies
VALUES ('Var1', 0.2),
('Var2', 0.825),
('Var3', 0.61);
GO
DECLARE @PredictionA DECIMAL(2, 1) = 0.7;
DECLARE @PredictionB DECIMAL(3, 1) = 0.65;
SELECT VarX,
Correlation
FROM dbo.Studies
WHERE Correlation < LEAST(@PredictionA, @PredictionB);
GO
Itt van az eredmények összessége. Csak 0,65-nél kisebb értékeket jelenítik meg.
VarX Correlation
---------- -----------
Var1 .200
Var3 .610
(2 rows affected)
E. Használat LEAST oszlopokkal, állandókkal és változókkal
Ez a példa egy oszlopokat, állandókat és változókat tartalmazó lista minimális értékének meghatározására szolgál LEAST .
CREATE TABLE dbo.Studies (
VarX VARCHAR(10) NOT NULL,
Correlation DECIMAL(4, 3) NULL
);
INSERT INTO dbo.Studies
VALUES ('Var1', 0.2),
('Var2', 0.825),
('Var3', 0.61);
GO
DECLARE @VarX DECIMAL(4, 3) = 0.59;
SELECT VarX,
Correlation,
LEAST(Correlation, 1.0, @VarX) AS LeastVar
FROM dbo.Studies;
GO
Itt van az eredmények összessége.
VarX Correlation LeastVar
---------- --------------------- ---------------------
Var1 0.200 0.200
Var2 0.825 0.590
Var3 0.610 0.590
(3 rows affected)