Você está na página 1de 4

UTILIZANDO FUNES EM INSTRUES SELECT NO INFORMIX

Funes de Agregao
A!" Calcula a mdia
COUNT Conta registros
MAX Pega o valor mximo de um campo
MIN Pega o valor mnimo de um campo
SUM Calcula a soma
Funes de Te#$o
DA% Retorna o dia do ms de uma data
CURRENT Dia corrente
MONT& Retorna o ms de uma data
'EE(DA% Retorna o dia da semana (de 0-Domingo 6-!ado" de uma data
%EAR Retorna o ano de uma data
MD% )#*s+d,a+ano- Retorna um valor tipo D#$% da express&o'
%x' %(%C$ )D*(mont+(toda,"-da,(toda,"-,ear(toda,"" .rom pedidos'''
/D#$% pedidos %$ data0pedido 1(mont+(toda,"- 2- ,ear(toda,""
34%R% num0pedido 1 567

Funes de Te#$o
DATE Converte um C4#R 8/ D#$%$9)% em D#$% ( $R9:; deve estar no
.ormato da varivel D<D#$%"' %xemplo = D<D#$% 1 )D*6 ( >))-DD-
****?"
%x' %(%C$ D#$%(@A2BA0B200CD" saida -E A2BA0B200C
%(%C$ D#$%(@A2A0200CD" saida -E A2BA0B200C
%(%C$ D#$%(@A2-A0-200CD" saida -E A2BA0B200C
%(%C$ D#$%(DA2 A0 200CD" saida -E A2BA0B200C
%(%C$ D#$%(C/RR%:$" data de +oFe ex E A2BA0B200C
34%R% order0date G D#$%(@A2BA0B200CD"
TO.C&AR Converte um D#$%$9)% ou um D#$% para string na .ormataH&o deseFada'
%xemplo= $80C4#R(data0cadastro- >I*BImBId?" onde >I*? o ano- o
>Im? o ms e >Id? o dia' er mostrado= >2000BA2B5A?
TO.DATE Converte uma string em um tipo datetime' # .ormataH&o para diJer em
Kue .ormato est a string'
%xemplo= $80D#$%(dtcad0str-LI*-Im-IdL"
Funo
ADD.MONT&S
#diciona Kuantidade de meses a uma varivel D#$% ou D#$%$9)%'
%x' #DD0)8:$4(@2MB0AB200CD-A" ' #diciona A ao ms e retorna o valor
2NB02B200C porKue o ano n&o !isexto e o ms de .ev sO tem 2N dias'
Funo
MONT&S./ET'EEN
select mont+s0!etPeen(to0date(QAB2B2006Q- QIdBImBI*Q"-
to0date(QAB2B2007Q- QIdBImBI*Q""
.rom ta!ela
Retorna a Kuantidade de meses entre as duas datas'
Funo
LAST.DA%
Retorna o Rltimo dia re.erente ao ms da data in.ormada' Pode ser um
D#$% ou D#$%$9)%'
%x' select last0da,(toda," .rom ta!ela
#ssuminto toda,10AB02B200N retorna 2MB02B200N
Funo
NEXT.DA%
Retorna a data re.erente ao prOximo dia representado pela a!reviaH&o do
dia da data in.ormada'
%x' select next0da,(toda,-D#$D" .rom ta!ela
#ssumindo Kue toda, 1 A6B02B200N (Kuinta"- retorna a data A6B02B200N'
#s a!reviaHSes para os dias da semana s&o= /:- )8:- $/%- 3%D-
$4/- TR9 e #$'
O$eraes 0o#
da1as
%(%C$ $8D#* (2 8/ 3 " 5 UNITS (DA%-MONT&-%EAR"
U1,4,5ando
!ar,67e,s
D%C(#R% v0data D#$%U
(%$ v0data 1 $8D#* V 5 /:9$ (D#*- )8:$4- *%#R"
Su81ra,r Da1as #ssumindo Kue temos duas variveis =
(dataA datetime ,ear to minute" e (data2 datetime ,ear to minute"'
dataA 1 >2000-06-02 A2=50?
data2 1 >AMMN-02-06 A0=07?
select extend(dataA-,ear to da," - extend(data2-,ear to da,"
Retorna= CNN (Kuantidade de dias entre as duas datas"
Funes de Man,$u4ao de S1r,ng
LO'ER $rans.orma uma string em minRscula
U99ER $rans.orma uma string em maiRscula
INITCA9 $rans.orma a A
a
letra de cada palavra em maiRscula'
RE9LACE $roca string em um campo' %xemplo= R%P(#C%(unidade- >pc?- >P%C#?"
SU/STR /<$R(nome- 7-2" -E pega 2 caracteres a partir da 7W posiH&o'
TRIM
LTRIM)4e:1-
RTRIM)r,g;1-
%limina caracteres no inicio eBou .inal de uma string'
Pode ser utiliJado com=
$railing V elimina caracteres da esKuerda (de.ault @ @"
(eading V elimina caracteres da direita (de.ault @ @"
<ot+ V elimina caract da esKuerda e direita (de.ault @ @"
%xs'
Considerar string @ XXXA25III @ identi.icada como @colD'
A- elect trim(col" .rom ta!
Retorna @XXXA25IIID eliminando os espaHos'
2- elect trim( leading @XD .rom trim(col"" .rom ta!'
Retorna @A25III @- eliminando os espaHos e os caract @XD
5- elect trim( trailing @ID .rom trim(col" .rom ta!'
Retorna @XXXA25D- eliminando os espaHos e os caract @ID'
SU/STRIN" Pega parte de uma string' %xemplos=
/<$R9:; (nome TR8) A T8R 6" pega string da posiH&o A at a 6
/<$R9:; (nome TR8) 6" pega todos strings a partir da 6
a
posiH&o
L9AD
UTILIZADO
SOMENTE
COM
Preenc+e a esKuerda de uma string com caracteres- o!edecendo o taman+o
mximo da string (ou do campo"' %xemplo= (P#D(nome- 20- >Y?" preenc+e
com astersticos a esKuerda do nome at Kue o campo .iKue com seu taman+o
mximo- Kue no caso 20' Resultado= >YYYYYYYYYYYY#:D%R8:?
!ARC&AR 8!s' :&o su!stitui os espaHos existentes na varivel'
R9AD Preenc+e a direita de uma string com caracteres- o!edecendo o taman+o
mximo da string (ou do campo"' %xemplo= RP#D(nome- 20- >Y?" preenc+e
com astersticos a esKuerda do nome at Kue o campo .iKue com seu taman+o
mximo- Kue no caso 20' Resultado= >#:D%R8:YYYYYYYYYYYY?
EX= Rece!er um valor de uma varivel do tipo D%C9)#( com AN caracteres
(maior Kue A6 apresentado com exponencial"=
SELECT L9AD)0o4una+<=+>??????????????????>-
8 valor ser apresentado com todos os caracteres' e .or menor Kue AN
caracteres- Jeros ser&o colocados esKuerda'
Ou1ras Funes
LEN"T& Retorna o taman+o da uma string em !,tes (n&o considera os espaHos a direita"'
TODA% Retorna a data corrente do sistema
N!L Converte um valor nulo para um valor especi.icado pelo usurio' %xemplo=
:Z((endereco- >cliente sB endereco?" caso o campo endereHo .or nulo ao
invs de retornar :/(( ou nada no campo- ser retornado >cliente sB endereHo?
FORAR O USO DE UM INDEX NA @UER%
select --[ordered 9:D%\( pedid ix0A0pedid"
Y .rom pedid
P+ere pedid0empresa 1 AU
CAST /tiliJe o operador (==" para converter a sada de uma express&o para o .ormato
deseFado' %x=
# coluna @campoD .oi de.inida como decimal(7-5"' #ssume-se Kue a coluna
@campoD ten+a armaJenado o valor DA0'A20D o Kue na Kuer, a!aixo=
elect (campo Y 0'A"
ProduJiria a sada= A'0A20
e eu deseFar Kue a sada seFa exi!ida com apenas 2 casas decimais- utiliJo
uma das seguintes Kuer,=
elect (campo Y 0'A"==decimal(7-2"
8u
elect C#$( (campo Y 0'A " # decimal(7-2" "
ProduJir a sada= A'0A
8utro %xemplo=
C#$ (to0c+ar(toda,-DI*ImIdD" as integer "
ProduJir a sada no .ormato inteiro de uma data *md'
Funes Ar,1#A1,0as
A/S Retorna o valor a!soluto' %x' a!s(-52" - retorna 52'
CEIL Retorna o valor arredondado para cima' %x ceil(52'5"- retorna 55
FLOOR Retorna o valor arredondado para !aixo' %x' .loor(52'5"- retorna 52
MODB )od(dividendo-divisor"' Retorna o resto da divis&o'
9O' PoP(!ase-exponent"' %leva a !ase in.ormada ao expoente' %x'poP(5-2" - eleva 5
ao Kuadrado e retorna M'
ROOT Root(radicando-indice"' Retorna a raiJ do radicando in.ormado' %x' root(A27-5"
retorna 7 Kue a raiJ cR!ica de A27' 8 ndice de.ault 2(Kuadrado"'
S@RT Krt(radicando"' Retorna raiJ Kuadrada de um nRmero'
ROUND #rredonda valor'
%xA' round(26-756'NC66- -2" arredonda at duas casas antes da
virgula(26'700-00"'
%x'2 round(26-756'NC66- 0" arredonda at o ponto(26'75C-00"'
%x'5 round(26-756'NC66- 2" arredonda at duas casas depois da
virgula(26'756-NC"'

Você também pode gostar