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.
As funções escalares retornam um valor para cada linha. Por exemplo, a função escalar de valor absoluto toma uma coluna numérica como argumento e devolve o valor absoluto de cada valor na coluna. A sequência de escape para chamar uma função escalar é
{fnfunção escalar}
onde a função escalar é uma das funções listadas no Apêndice E: Funções Escalares. Para mais informações sobre a sequência de escape da função escalar, veja Sequência de Escape da Função Escalar no Apêndice C: Gramática SQL.
Por exemplo, as seguintes instruções SQL criam o mesmo conjunto de resultados de nomes maiúsculos dos clientes. A primeira declaração utiliza a sintaxe da sequência de escape. A segunda instrução usa a sintaxe nativa do Ingres para OS/2 e não é interoperável.
SELECT {fn UCASE(Name)} FROM Customers
SELECT uppercase(Name) FROM Customers
Uma aplicação pode misturar chamadas para funções escalares que usam sintaxe nativa e chamadas para funções escalares que usam sintaxe ODBC. Por exemplo, assuma que os nomes na tabela Employee são armazenados como apelido, vírgula e primeiro nome. A seguinte instrução SQL cria um conjunto de resultados com os apelidos dos colaboradores na tabela Employee. A instrução utiliza a função escalar ODBC SUBSTRING e a função escalar do SQL Server CHARINDEX e só será executada corretamente no SQL Server.
SELECT {fn SUBSTRING(Name, 1, CHARINDEX(',', Name) - 1)} FROM Customers
Para máxima interoperabilidade, as aplicações devem usar a função escalar CONVERT para garantir que a saída de uma função escalar é do tipo necessário. A função CONVERT converte dados de um tipo de dado SQL para o tipo de dado SQL especificado. A sintaxe da função CONVERT é
CONVERT(value_exp,data_type)
onde value_exp é o nome de uma coluna, o resultado de outra função escalar ou um valor literal, e data_type é uma palavra-chave que corresponde ao nome #define usado por um identificador de tipo de dado SQL conforme definido no Apêndice D: Tipos de Dados. Por exemplo, a seguinte instrução SQL utiliza a função CONVERT para garantir que a saída da função CURDATE é uma data, em vez de um carimbo temporal ou dados de caracteres:
INSERT INTO Orders (OrderID, CustID, OpenDate, SalesPerson, Status)
VALUES (?, ?, {fn CONVERT({fn CURDATE()}, SQL_DATE)}, ?, ?)
Para determinar quais as funções escalares suportadas por uma fonte de dados, uma aplicação chama SQLGetInfo com as opções SQL_CONVERT_FUNCTIONS, SQL_NUMERIC_FUNCTIONS, SQL_STRING_FUNCTIONS, SQL_SYSTEM_FUNCTIONS e SQL_TIMEDATE_FUNCTIONS. Para determinar quais as operações de conversão suportadas pela função CONVERT , uma aplicação chama SQLGetInfo com qualquer uma das opções que começam por SQL_CONVERT.