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í na: SQL Server 2022 (16.x) a nowše verzie
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
Tato funkce vrací minimální hodnotu ze seznamu jednoho nebo více výrazů.
Syntaxe
LEAST ( expression1 [ , ...expressionN ] )
Arguments
výraz1, výrazN
Seznam výrazů oddělených čárkami pro libovolný srovnatelný datový typ. Funkce LEAST vyžaduje alespoň jeden argument a podporuje maximálně 254 argumentů.
Každý výraz může být konstanta, proměnná, název sloupce nebo funkce a libovolná kombinace aritmetických, bitových a řetězcových operátorů. Jsou povoleny agregované funkce a skalární poddotazy.
Návratové typy
Vrátí datový typ s nejvyšší předností z množiny typů předaných funkci. Další informace naleznete v tématu priorita datových typů (Transact-SQL).
Pokud mají všechny argumenty stejný datový typ a typ je podporován pro porovnání, LEAST vrací tento typ.
Jinak funkce implicitně převede všechny argumenty na datový typ s nejvyšší prioritou před porovnáním a použije tento typ jako návratový typ.
U číselných typů bude škála návratového typu stejná jako u argumentu nejvyšší přednosti, nebo u největšího měřítka, pokud je více argumentů s datovým typem s nejvyšší prioritou.
Poznámky
Všechny výrazy v seznamu argumentů musí být datového typu, který je srovnatelný a který lze implicitně převést na datový typ argumentu s nejvyšší prioritou.
Před porovnáním probíhá implicitní převod všech argumentů na datový typ s nejvyšší prioritou.
Pokud není podporována implicitní převod typů mezi argumenty, funkce selže a vrátí chybu.
Pro více informací o implicitní a explicitní konverzi viz Převod datových typů (Database Engine).
Pokud jeden nebo více argumentů není NULL, pak NULL jsou argumenty při srovnávání ignorovány. Pokud jsou všechny argumenty , NULLpak LEAST vrací NULL.
Porovnání argumentů postav se řídí pravidly Collation Precedence (Transact-SQL).
Následující typy nejsou podporovány pro porovnání v LEAST: varchar(max),varbinary(max) nebo nvarchar(max) s délkou přesahující 8 000 bajtů, kurzor, geometrie, geografie, obrazu, uživatelsky definovaných typech bez bajtů, ntext, tabulka, text a xml.
Datové typy varchar(max),varbinary(max) a nvarchar(max) jsou podporovány pro argumenty o velikosti 8 000 bajtů nebo méně a budou implicitně převedeny na varchar(n), varbinary(n) a nvarchar(n) před porovnáním.
Například varchar(max) může podporovat až 8 000 znaků při použití jednobajtové kódovací sady znaků a nvarchar(max) až 4 000 bajtových párů (za předpokladu kódování znaků UTF-16).
Examples
A. Vraťte minimální hodnotu ze seznamu konstant
Následující příklad vrací minimální hodnotu ze seznamu konstant, které jsou uvedeny.
Měřítko typu návratu je určeno měřítkem argumentu s datovým typem s nejvyšší prioritou.
SELECT LEAST('6.62', 3.1415, N'7') AS LeastVal;
GO
Tady je soubor výsledků.
LeastVal
-------
3.1415
(1 rows affected)
B. Vraťte minimální hodnotu ze seznamu typů znaků
Následující příklad vrací minimální hodnotu ze seznamu znakových konstant, které je uvedeno.
SELECT LEAST('Glacier', N'Joshua Tree', 'Mount Rainier') AS LeastString;
GO
Tady je soubor výsledků.
LeastString
-------------
Glacier
(1 rows affected)
C. Vraťte minimální hodnotu ze seznamu sloupcových argumentů
Tento příklad vrací minimální hodnotu ze seznamu sloupcových argumentů a při porovnání ignoruje hodnoty NULL . Tento vzorek využívá databázi AdventureWorksLT , kterou lze rychle nainstalovat jako ukázkovou databázi pro novou Azure SQL databázi. Další informace naleznete v ukázkových databázích AdventureWorks .
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;
Tady je soubor výsledků.
EarliestDate vybere nejmenší datovou hodnotu ze tří hodnot, přičemž ignoruje NULL.
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. Použití LEAST s lokálními proměnnými
Tento příklad slouží LEAST k určení minimální hodnoty seznamu lokálních proměnných v predikátu klauzule WHERE .
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
Tady je soubor výsledků. Zobrazují se pouze hodnoty menší než 0,65.
VarX Correlation
---------- -----------
Var1 .200
Var3 .610
(2 rows affected)
E. Použití LEAST se sloupci, konstantami a proměnnými
Tento příklad slouží LEAST k určení minimální hodnoty seznamu obsahujícího sloupce, konstanty a proměnné.
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
Tady je soubor výsledků.
VarX Correlation LeastVar
---------- --------------------- ---------------------
Var1 0.200 0.200
Var2 0.825 0.590
Var3 0.610 0.590
(3 rows affected)