Funções comuns A-C D-G H-L M-Q R-Z Funções trigonométricas
SQL-99 Escalar abs ( numeric_expression ) Retorna o valor absoluto de "numeric_expression". Os valores negativos são retornados como valores positivos. Exemplo: abs ( 15 ) Resultado: 15 Exemplo: abs ( -15 ) Resultado: 15 bit_length bit_length ( string_expression ) Retorna o número de bits de "string_expression". cast ( expression , datatype_specification ) Converte "expressão" em um tipo de dado especificado. Alguns tipos de dados permitem que a extensão e a precisão sejam especificadas. Certifique-se de que o destino possui tipo e tamanho apropriados. Os exemplos a seguir podem ser usados para "datatype_specification": character; varchar; char; numeric; decimal; integer; smallint; real; float; date; time; timestamp; time with time zone; timestamp with time zone e interval. Quando fizer uma conversão para um tipo interval, será necessário especificar um dos seguintes qualificadores de intervalo: year, month ou year to month para o tipo de dados do intervalo ano/mês; day, hour, minute, second, day to hour, day to minute, day to second, hour to minute, hour to second ou minute to second para o tipo de dados do intervalo dia/segundo. Observação: na conversão de um valor do tipo timestamp para date, a fração de tempo do registro de data e hora será ignorada. Na conversão de um valor do tipo timestamp para time, a fração de tempo do registro de data e hora será ignorada. Na conversão de um valor do tipo data para registro de data e hora, os componentes de hora do registro de data e hora serão configurados como zero. Na conversão de um valor do tipo tempo para registro de data e hora, os componentes da data serão configurados de acordo com a data atual do sistema. A conversão de um tipo de dados de intervalo em outro é inválida (porque o número de dias em um mês é variável, por exemplo). Observe que é possível especificar o número de dígitos apenas para o qualificador inicial, por exemplo, YEAR(4) TO MONTH, DAY(5). Os erros serão reportados se o tamanho e o tipo do destino não forem compatíveis com o tamanho e o tipo de origem. Exemplo: cast ( '123' , integer ) Resultado: 123 Exemplo: cast ( 12345 , varchar ( 10 ) ) Resultado: uma sequência que contém 12345 char_length ( string_expression ) Retorna o número de caracteres lógicos de "string_expression". O número de caracteres lógicos poderá diferir do número de bytes em alguns códigos do idioma no leste asiático. Exemplo: char_length ( 'Canada' ) Resultado: 6 character_length ( string_expression ) Retorna o número de caracteres de "string_expression". Exemplo: character_length ( 'Canada' ) Resultado: 6 current_date  current_date  Retorna um valor que representa a data atual do computador em que o software de banco de dados está em execução. Exemplo: current_date Resultado: 2003-03-04 current_time current_time Retorna um horário com valor de fuso horário, representando o horário atual do computador que executa o software de banco de dados se o banco de dados suportar essa função. Do contrário, representa o horário atual do computador que executa o software do IBM® Cognos® BI. Exemplo: current_time Resultado: 16:33:11.354+05:00 current_timestamp  current_timestamp  Retorna uma data/hora com valor de fuso horário, representando o horário atual do computador que executa o software de banco de dados se o banco de dados suportar essa função. Do contrário, representa o horário atual do computador que executa o software do IBM® Cognos® BI. Exemplo: current_timestamp Resultado: 2003-03-03 16:40:15.535+05:00 localtime localtime Retorna um valor de horário que representa o horário atual do computador em que o banco de dados do software está sendo executado. Exemplo: localtime Resultado: 16:33:11 localtimestamp  localtimestamp  Retorna um valor de data/hora que representa o valor de data e hora atual do computador em que o banco de dados do software está sendo executado. Exemplo: localtimestamp Resultado: 2003-03-03 16:40:15 extract ( datepart , datetime_expression ) Retorna um número inteiro que representa o valor de datepart (ano, mês, dia, hora, minuto, segundo, época) em "datetime_expression". Exemplo: extract ( year , 2003-03-03 16:40:15.535 ) Resultado: 2003 Exemplo: extract ( hour , 2003-03-03 16:40:15.535 ) Resultado: 16 Exemplo: extract ( epoch , 2014-11-23 ) Resultado: 1416718800 lower ( string_expression ) Retorna "string_expression" com todos os caracteres maiúsculos substituídos por minúsculos. Exemplo: lower ( 'ABCDEF' ) Resultado: abcdef mod ( integer_expression1, integer_expression2 ) Retorna o resto (módulos) da divisão de "integer_expression1" por "integer_expression2". Não é possível que "integer_expression2" seja igual a zero ou uma condição de exceção ocorrerá. Exemplo: mod ( 20 , 3 ) Resultado: 2 occurrences_regex ( regex_expression , string_expression [ , integer_expression [ , flags_expression ]] ) Retorna o valor de número inteiro que representa o número de ocorrências da expressão regular "regex_expression" em "string_expression". A procura inicia na posição "integer_expression", que tem um valor padrão de 1. As sinalizações para configurar opções para a interpretação da expressão regular são especificadas por "flags_expression". Letras individuais são usadas para definir as sinalizações, com valores válidos sendo 's', 'm', 'i' e 'x'. Exemplo: occurrences_regex ( '.er' , 'Flicker Lantern') Resultado: 2 octet_length ( string_expression ) Retorna o número de bytes de "string_expression". Exemplo: octet_length ( 'ABCDEF' ) Resultado: 6 Exemplo: octet_length ( '' ) Resultado: 0 position ( string_expression1 , string_expression2 ) Retorna o valor de número inteiro que representa a posição inicial "string_expression1" em "string_expression2" ou 0 se "string_expression1" não for localizada. Exemplo: position ( 'C' , 'ABCDEF' ) Resultado: 3 Exemplo: position ( 'H' , 'ABCDEF' ) Resultado: 0 position_regex ([ start|after ]  regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) Retorna o valor de número inteiro que representa a posição inicial ou final da subsequência em "string_expression" que corresponde à expressão regular "regex_expression". A procura inicia na posição "integer_expression1", que tem um valor padrão de 1. A ocorrência do padrão para procura é especificada por "integer_expression2", que tem um valor padrão de 1. A opção de retorno, especificada pelo primeiro argumento, especifica o que é retornado em relação à ocorrência. Se você especificar "start", a posição do primeiro caractere da ocorrência é retornada. Se você especificar "after", a posição do caractere seguinte à ocorrência é retornada. Se você não especificar uma opção de retorno, "start" está implícito. As sinalizações para configurar opções para a interpretação da expressão regular são especificadas por "flags_expression". Letras individuais são usadas para definir as sinalizações, com valores válidos sendo 's', 'm', 'i' e 'x'. Exemplo: position_regex ( '.er' , 'Flicker Lantern') Resultado: 5 Exemplo: position_regex ( after '.er' , 'Flicker Lantern' ) Resultado: 8 Exemplo: position_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) Resultado: 12 trim ( [ [ trailing|leading|both ] [ match_character_expression ] , ] string_expression ) Retorna uma "string_expression" cujas lacunas iniciais e/ou finais foram removidas ou que não apresenta algum caractere especificado em "match_character_expression". "Both" está implícito quando o primeiro argumento não estiver declarado e a lacuna estiver implícita quando o segundo argumento não estiver declarado. Exemplo: trim ( trailing 'A' , 'ABCDEFA' ) Resultado: ABCDEF Exemplo: trim ( both , ' ABCDEF ' ) Resultado: ABCDEF upper ( string_expression ) Retorna "string_expression" com todos os caracteres minúsculos substituídos por maiúsculos. Exemplo: upper ( 'abcdef' ) Resultado: ABCDEF user user Retorna uma ID de autorização para o gerenciador do banco de dados durante o tempo de execução. nullif nullif ( expression1, expression2 ) Retorna nulo se "expressão1" for igual a "expressão2"; do contrário, retorna "expressão1". coalesce ( expression_list ) Retorna o primeiro argumento não nulo (ou nulo se todos os argumentos forem nulos). Necessita de dois ou mais argumentos em "lista_de_expressão". coalesce ( [Preço unitário], [Preço unitário de venda] ) Resultado: retorna o preço da unidade ou o preço de vendas da unidade se o preço da unidade for nulo. coalesce ( expression_list ) Retorna o primeiro argumento não nulo (ou nulo se todos os argumentos forem nulos). Requer um ou mais argumentos em "expression_list". coalesce ( [Preço unitário], [Preço unitário de venda] ) Resultado: retorna o preço da unidade ou o preço de vendas da unidade se o preço da unidade for nulo. ceil ( numeric_expression ) Retorna o menor número inteiro maior que ou igual a "numeric_expression". ceiling ( numeric_expression ) Retorna o menor número inteiro maior que ou igual a "numeric_expression". Exemplo: ceiling ( 4.22 ) Resultado: 5 Exemplo: ceiling ( -1.23 ) Resultado: -1 ln ( numeric_expression ) Retorna o logaritmo natural de "numeric_expression". Exemplo: ln ( 4 ) Resultado: 1.38629 exp ( numeric_expression ) Retorna a constante "e" elevada à potência de "numeric_expression". A constante 'e' é a base do logaritmo natural. Exemplo: exp ( 2 ) Resultado: 7.389056 period ( datetime_expression1 , datetime_expression2 ) Constrói um valor do período com um ponto de início de "datetime_expression1" e um ponto de término de "datetime_expression2". Os tipos de dados dos pontos de início e de término devem ser idênticos e podem ser uma data, um horário ou uma data/hora. Os valores do período podem ser usados em predicados de período. Exemplo: period ( 2003-03-03 , 2003-10-03 ) Exemplo: period ( 12:00:00 , 23:59:59 ) Exemplo: period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) Exemplo: period ( [EMP].[BUS_START] , [EMP].[BUS_END] ) power ( numeric_expression1 , numeric_expression2 ) Retorna "numeric_expression1" elevada à potência "numeric_expression2". Se "numeric_expression1" for negativa, "numeric_expression2" deve resultar em um valor de número inteiro. Exemplo: power ( 3 , 2 ) Resultado: 9 random ( [ integer_expression ] ) Retorna um valor float aleatório entre 0 e 1, usando o "integer_expression" opcional como valor de semente. _round ( numeric_expression , integer_expression ) Retorna "numeric_expression" arredondada "integer_expression" casas à direita do separador decimal. Observação: "integer_expression" deve ser um número inteiro não negativo. Arredondamentos são feitos antes que a formatação dos dados seja aplicada. Exemplo: _round ( 1220.42369, 2 ) Resultado: 1220.42 O construtor de linhas representa uma coleção de valores organizada como uma linha de dados. Pode ser usada em expresões condicionais (i.e. IF-THEN-ELSE) e em expressões de filtro (por exemplo, cláusulaIN). row ( expression_list ) Example: if ( row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') Resultado: Retorna 'A' se o Nome do Varejista for 'ActiForme' e o código de método de pedido for 4. Caso contrário, o valor 'B' é retornado. Example: case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end Resultado: Retorna 1 se o Nome do Varejista for 'Advanced Climbing Ltd' e o código de método do pedido for 3. Retorna 2 se o Nome do Varejista for 'ActiForme' e o código do método de pedido for 5. Caso contrário, o valor 3 é retornado. Exemplo: row ( [OrderMethodCode], [Year] ) in ( [Query].[OMC], [Query].[YR] ) Resultado: Os dados retornados são filtrados nas duas condições a seguir: 1) [OrderMethodCode] in ([Query].[OMC]) 2) [Year] in ([Query].[YR]) sqrt ( numeric_expression ) Retorna a raiz quadrada de "numeric_expression". É necessário que "numeric_expression" seja um número positivo. Exemplo: sqrt ( 9 ) Resultado: 3 substring ( string_expression , integer_expression1 [ , integer_expression2 ] ) Retorna uma subsequência de "string_expression", que começa na posição de "integer_expression1", para os caracteres de "integer_expression2", ou no final de "string_expression", se a "integer_expression2" for omitida. O primeiro caractere de "string_expression" ocupa a posição 1. Exemplo: substring ( 'abcdefg' , 3 , 2 ) Resultado: cd substring_regex ( regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) Retorna uma subsequência de "string_expression" que corresponde à expressão regular "regex_expression". A procura inicia na posição "integer_expression1", que tem um valor padrão de 1. A ocorrência do padrão para procura é especificada por "integer_expression2", que tem um valor padrão de 1. As sinalizações para configurar opções para a interpretação da expressão regular são especificadas por "flags_expression". Letras individuais são usadas para definir as sinalizações, com valores válidos sendo 's', 'm', 'i' e 'x'. Exemplo: substring_regex ( '.er' , 'Flicker Lantern') Resultado: ker Exemplo: substring_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) Resultado: ter floor ( numeric_expression ) Retorna o maior número inteiro menor que ou igual a "numeric_expression". Exemplo: floor ( 3.22 ) Resultado: 3 Exemplo: floor ( -1.23 ) Resultado: -2 width-bucket ( numeric_expression ,  min_value ,  max_value ,  num_of_buckets ) Para uma dada expressão, esta função retorna o número de bucket no qual o valor desta expressão diminuiria após ser avaliado. Exemplo: width-bucket ( Quantity ,  100 ,  5000 ,  10 ) Resultado: para cada linha, retorna o número de bucket (de 0 a 11) para o atual valor de Quantity. Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( numeric_expression ) Esta função trigonométrica retorna o seno do argumento, em que o argumento é um ângulo expresso em radianos. Exemplo: sin ( 0.1667 * 3.1415 ) Resultado: 0,5 cos ( numeric_expression ) Esta função trigonométrica retorna o cosseno do argumento, em que o argumento é um ângulo expresso em radianos. Exemplo: cos ( 0.3333 * 3.1415 ) Resultado: 0,5 tan ( numeric_expression ) Esta função trigonométrica retorna a tangente do argumento, em que o argumento é um ângulo expresso em radianos. Exemplo: tan ( 0.25 * 3.1415 ) Resultado: 1 arccos ( numeric_expression ) Esta função trigonométrica inversa retorna o arco cosseno do argumento, em que o argumento está na faixa de -1 a 1 e o resultado é um valor expresso em radianos. Exemplo: arccos ( -1 ) Resultado: 3,1415 arcsin ( numeric_expression ) Esta função trigonométrica inversa retorna o arco seno do argumento, em que o argumento está na faixa de -1 a 1 e o resultado é um valor expresso em radianos. Exemplo: arcsin ( 0 ) Resultado: 3,1415 Esta função trigonométrica inversa retorna o arco tangente do argumento, em que o argumento está na faixa de -1 a 1 e o resultado é um valor expresso em radianos. arctan ( numeric_expression ) Exemplo: arctan ( 0 ) Resultado: 3,1415 coshyp ( numeric_expression ) Esta função trigonométrica retorna o cosseno hiperbólico do argumento, em que o argumento é um ângulo expresso em radianos. Exemplo: coshyp ( 0 ) Resultado: 1 sinhyp ( numeric_expression ) Esta função trigonométrica retorna o seno hiperbólico do argumento, em que o argumento é um ângulo expresso em radianos. Exemplo: sinhyp ( 0 ) Resultado: 0 tanhyp ( numeric_expression ) Esta função trigonométrica retorna a tangente hiperbólica do argumento, em que o argumento é um ângulo expresso em radianos. Exemplo: tanhyp ( 0 ) Resultado: 0
Extensões OLAP do SQL-99 cube cube ( grouping_column_reference_list ) Essa é uma cláusula "group by" que resulta em uma lista de conjuntos de agrupamentos que contém conjuntos de agrupamentos para todas as combinações possíveis das colunas de agrupamento em "lista_de_referência_de_agrupamento_de_colunas". sintetização rollup ( grouping_column_reference_list ) Essa é uma cláusula "group by" que resulta em uma lista de conjuntos de agrupamentos que contém um conjunto de agrupamentos para cada sublista de "lista_referência_colunas_agrupamento", retirando elementos da direita, um por um. grouping sets grouping sets ( grouping_set_list ) Esta é uma cláusula "group by" que especifica diversos conjuntos para agrupamento. rank rank () Calcula a classificação da linha dentro da partição da janela, em que a classificação da linha x é definida como 1 mais o número de linhas anteriores a x e que não se assemelhem a ela. dense_rank dense_rank () Calcula a classificação compacta da linha dentro da partição da janela, em que a classificação compacta da linha x está definida como o número de linhas anteriores a x, incluindo-a, que sejam distintas. percent_rank percent_rank () Calcula a classificação percentual da linha dentro da partição da janela, onde a classificação percentual da linha x é definida por (xy - 1) / (ab - 1), sendo xy a classificação de x e ab o número de linhas da partição da janela. row_number row_number () Calcula o número de linhas em sequência, começando por 1 na primeira linha, da linha dentro de sua partição da janela. ntile ntile ( numeric_expression ) Divide um conjunto de dados ordenado em diversas áreas, indicadas por "numeric_expression", e atribui o número de área apropriado para cada linha.