Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2022 (16.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
Esta função devolve o valor mínimo de uma lista de uma ou mais expressões.
Transact-SQL convenções de sintaxe
Sintaxe
LEAST ( expression1 [ , ...expressionN ] )
Arguments
expressão1, expressãoN
Uma lista de expressões separadas por vírgulas de qualquer tipo de dado comparável. A LEAST função requer pelo menos um argumento e suporta no máximo 254 argumentos.
Cada expressão pode ser uma constante, variável, nome de coluna ou função, e qualquer combinação de operadores aritméticos, bit a bit e string. São permitidas funções agregadas e subconsultas escalares.
Tipos de devolução
Devolve o tipo de dado com a precedência mais alta do conjunto de tipos passados para a função. Para obter mais informações, consulte Precedência de Tipos de Dados (Transact-SQL).
Se todos os argumentos tiverem o mesmo tipo de dado e o tipo for suportado para comparação, LEAST devolve esse tipo.
Caso contrário, a função converterá implicitamente todos os argumentos para o tipo de dados de maior precedência antes da comparação e usará este tipo como tipo de retorno.
Para tipos numéricos, a escala do tipo de retorno será a mesma do argumento de maior precedência, ou a maior escala se mais do que um argumento for do tipo de dado de maior precedência.
Observações
Todas as expressões na lista de argumentos devem ser de um tipo de dado comparável e que possa ser implicitamente convertido para o tipo de dado do argumento com maior precedência.
A conversão implícita de todos os argumentos para o tipo de dados de maior precedência ocorre antes da comparação.
Se a conversão implícita de tipos entre os argumentos não for suportada, a função falhará e devolverá um erro.
Para mais informações sobre conversão implícita e explícita, consulte Conversão de Tipos de Dados (Motor de Base de Dados).
Se um ou mais argumentos não NULLforem , então NULL os argumentos são ignorados durante a comparação. Se todos os argumentos forem NULL, então LEAST retorna NULL.
A comparação de argumentos de carácter segue as regras da Precedência de Colocação (Transact-SQL).
Os seguintes tipos não são suportados para comparação em LEAST: varchar(max), varbinary(max) ou nvarchar(max) com exceção de 8.000 bytes, cursor, geometria, geografia, imagem, tipos definidos pelo utilizador sem ordem de bytes, ntext, table, text e xml.
Os tipos de dados varchar(max),varbinary(max) e nvarchar(max) são suportados para argumentos com 8.000 bytes ou menos, e serão implicitamente convertidos em varchar(n), varbinary(n) e nvarchar(n), respetivamente, antes da comparação.
Por exemplo, varchar(max) pode suportar até 8.000 caracteres se usar um conjunto de caracteres de codificação de um único byte, e nvarchar(max) pode suportar até 4.000 pares de bytes (assumindo codificação de caracteres UTF-16).
Examples
A. Devolver valor mínimo a partir de uma lista de constantes
O exemplo seguinte devolve o valor mínimo da lista de constantes que é fornecida.
A escala do tipo de retorno é determinada pela escala do argumento com o tipo de dado de maior precedência.
SELECT LEAST('6.62', 3.1415, N'7') AS LeastVal;
GO
Aqui está o conjunto de resultados.
LeastVal
-------
3.1415
(1 rows affected)
B. Devolver o valor mínimo de uma lista de tipos de caracteres
O exemplo seguinte devolve o valor mínimo da lista de constantes de carácter que é fornecida.
SELECT LEAST('Glacier', N'Joshua Tree', 'Mount Rainier') AS LeastString;
GO
Aqui está o conjunto de resultados.
LeastString
-------------
Glacier
(1 rows affected)
C. Devolver valor mínimo a partir de uma lista de argumentos de coluna
Este exemplo devolve o valor mínimo de uma lista de argumentos de coluna e ignora NULL valores durante a comparação. Este exemplo utiliza a AdventureWorksLT base de dados, que pode ser rapidamente instalada como base de dados de exemplo para uma nova Azure SQL Database. Para obter mais informações, consulte bancos de dados de exemplo do 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;
Aqui está o conjunto de resultados.
EarliestDate escolhe o valor de data mais baixo entre os três valores, ignorando 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. Utilização LEAST com variáveis locais
Este exemplo serve LEAST para determinar o valor mínimo de uma lista de variáveis locais dentro do predicado de uma WHERE cláusula.
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
Aqui está o conjunto de resultados. Apenas os valores inferiores a 0,65 são exibidos.
VarX Correlation
---------- -----------
Var1 .200
Var3 .610
(2 rows affected)
E. Uso LEAST com colunas, constantes e variáveis
Este exemplo serve LEAST para determinar o valor mínimo de uma lista que inclui colunas, constantes e variáveis.
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
Aqui está o conjunto de resultados.
VarX Correlation LeastVar
---------- --------------------- ---------------------
Var1 0.200 0.200
Var2 0.825 0.590
Var3 0.610 0.590
(3 rows affected)