Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Devolve de uma sequência de valores atómicos, $arg, o único item cujo valor é inferior ao de todos os outros.
Sintaxe
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Argumentos
$arg
Sequência de itens dos quais retornar o valor mínimo.
Comentários
Todos os tipos dos valores atomizados que são passados para min() devem ser subtipos do mesmo tipo base. Os tipos de base aceites são os tipos que suportam a operação gt. Esses tipos incluem os três tipos de base numérica internos, os tipos de base de data/hora, xs:string, xs:booleano e xdt:untypedAtomic. Os valores do tipo xdt:untypedAtomic são convertidos em xs:double. Se houver uma mistura desses tipos, ou se outros valores de outros tipos forem passados, um erro estático será gerado.
O resultado de min() recebe o tipo base dos tipos passados, como xs:double no caso de xdt:untypedAtomic. Se a entrada estiver estaticamente vazia, vazio será implícito e um erro estático será retornado.
A função min() retorna um valor na sequência que é menor do que qualquer outro na sequência de entrada. Para valores xs:string, o Agrupamento de Codepoint Unicode padrão está sendo usado. Se um valor xdt:untypedAtomic não puder ser convertido em xs:double, o valor será ignorado na sequência de entrada, $arg. Se a entrada for uma sequência vazia calculada dinamicamente, a sequência vazia será retornada.
Exemplos
Este tópico fornece exemplos de XQuery em instâncias XML armazenadas em várias colunas xml type no banco de dados AdventureWorks.
Um. Usando a função min() XQuery para encontrar o local do centro de trabalho que tem o menor número de horas de trabalho
A consulta a seguir recupera todos os locais do centro de trabalho no processo de fabricação do modelo de produto (ProductModelID=7) que têm o menor número de horas de trabalho. Geralmente, como mostrado a seguir, um único local é retornado. Se vários locais tivessem um número igual de horas mínimas de trabalho, todos seriam devolvidos.
select ProductModelID, Name, Instructions.query('
declare namespace AWMI=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $Location in /AWMI:root/AWMI:Location
where $Location/@LaborHours =
min( /AWMI:root/AWMI:Location/@LaborHours )
return
<Location WCID= "{ $Location/@LocationID }"
LaborHrs= "{ $Location/@LaborHours }" />
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
Observe o seguinte da consulta anterior:
- O namespace palavra-chave no prólogo XQuery define um prefixo de namespace. Este prefixo é então usado no corpo XQuery.
O corpo XQuery constrói o XML que tem um elemento <Location> com atributos WCID e LaborHrs.
- A consulta também recupera os valores ProductModelID e name.
Este é o resultado:
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
Limitações de implementação
Estas são as limitações:
A função min() mapeia todos os inteiros para xs:decimal.
A função min() em valores do tipo xs:duration não é suportada.
Não há suporte para sequências que misturam tipos entre limites de tipo base.
A opção sintática que fornece um agrupamento não é suportada.