Você está na página 1de 11

14/01/13

Funes para converso de tipos

SQL em Oracle > DML > Funes > Funes de linha > Funes para converso de tipos

Funes para converso de tipos


A linguagem SQL fornece vrias funes para controlar a converso de tipos de dados. Estas funes convertem um valor de um tipo para outro tipo. TO_DATE(string) TO_CHAR(data) EXTRACT(YEAR|MONTH|WEEK|DAY|HOUR|MINUTE|TIMEZONE FROM DATE|TIMESTAMP) TO_CHAR(nmero) TO_NUMBER(string) MASCARA_DATA O ORACLE e o ano 2000 MASCARA_NUMERO NVL( ) GREATEST( ) DECODE( ) CASE

TO_DATE(string, mscara de data)


A funo TO_DATE() converte do formato cadeia de caracteres para data, seguindo a mscara escolhida pelo utilizador. Os valores possveis para a mascara esto descritos nesta pgina.
atrssinstnstrioy'OTGL; le eso e l_ertr=PRUA' atrssinstnslnug=PRUUS' le eso e l_agae'OTGEE; atrssinstnsdt_omt'yym-dh2:is' le eso e l_aefra=yy-md h4m:s; slc eet t_ae'060-71:54''yym-dh2:is'+ odt(20-71 21:5,yy-md h4m:s)1 fo da; rm ul

atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. T_AE'060-721:5,YY-MDH2:IS'+ ODT(20-711:54''YYM-DH4M:S)1 -----------------------20-71 1:54 060-8 21:5 1rw slce os eetd

A funo TO_DATE() converte de cadeia de caracteres em data. data resultante adicionamos um dia; A data obtida pelo comando anterior apresentada usando o formato definido pelo comando ALTER SESSION SET NLS_DATE_FORMAT; Topo

TO_CHAR(data, mscara_data, [nls_date_format] )


A funo TO_CHAR(data) converte do formato data para cadeia de caracteres, seguindo a mscara escolhida pelo utilizador. Os valores possveis para a mascara esto descritos nesta pgina.

aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm

1/11

14/01/13

Funes para converso de tipos

atrssinstnstrioy'OTGL; le eso e l_ertr=PRUA' atrssinstnslnug=PRUUS' le eso e l_agae'OTGEE; atrssinstnsdt_omt'yym-dh2:is' le eso e l_aefra=yy-md h4m:s; slc eet eae nm, hrdt, ieae t_hrhrdt,dy d "e Mnh"e YY' oca(ieae'a, d d" ot d" YY) fo ep rm m;

atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. EAE NM HRDT IEAE T_HRHRDT,DYD"EMNHD"YY) OCA(IEAE'A,DD"OT"EYY' ----- --------------------------------------- ------------ --------------------SIH MT 18-21 0:00 901-7 00:0 qat-er ,1 d Dzmr d 18 urafia 7 e eebo e 90 ALN LE 18-22 0:00 910-0 00:0 sxafia ,2 d Fvriod 18 et-er 0 e eeer e 91 WR AD 18-22 0:00 910-2 00:0 dmno oig ,2 d Fvriod 18 2 e eeer e 91 JNS OE 18-40 0:00 910-2 00:0 qit-er ,0 d Arl unafia 2 e bi d 18 e 91 MRI ATN 18-92 0:00 910-8 00:0 sgnafia 2 d Stmr d 18 eud-er, 8 e eebo e 91 BAE LK 18-50 0:00 910-1 00:0 sxafia ,0 d Mi et-er 1 e ao d 18 e 91 CAK LR 18-60 0:00 910-9 00:0 trafia ,0 d Jno e-er 9 e uh d 18 e 91 SOT CT 18-20 0:00 921-9 00:0 qit-er ,0 d Dzmr d 18 unafia 9 e eebo e 92 KN IG 18-11 0:00 911-7 00:0 trafia ,1 d Nvmr d 18 e-er 7 e oebo e 91 TRE UNR 18-90 0:00 910-8 00:0 trafia ,0 d Stmr d 18 e-er 8 e eebo e 91 AAS DM 18-11 0:00 930-2 00:0 qat-er ,1 d Jnio d 18 urafia 2 e aer e 93 JMS AE 18-20 0:00 911-3 00:0 qit-er ,0 d Dzmr d 18 unafia 3 e eebo e 91 FR OD 18-20 0:00 911-3 00:0 qit-er ,0 d Dzmr d 18 unafia 3 e eebo e 91 MLE ILR 18-12 0:00 920-3 00:0 sbd ao ,2 d Jnio d 18 3 e aer e 92 1 rw slce 4 os eetd

Colocar a mscara em maisculas ou minsculas influencia o resultado:


atrssinstnstrioy'OTGL; le eso e l_ertr=PRUA' atrssinstnslnug=PRUUS' le eso e l_agae'OTGEE; atrssinstnsdt_omt'yym-dh2:is' le eso e l_aefra=yy-md h4m:s; slc eet eae nm, hrdt, ieae t_hrhrdt,DY D "e MNH"e YY' oca(ieae'A, D d" OT d" YY) fo ep rm m;

atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. EAE NM HRDT IEAE T_HRHRDT,DYD"EMNHD"YY) OCA(IEAE'A,DD"OT"EYY' ----- --------------------------------------- ------------ --------------------SIH MT 18-21 0:00 901-7 00:0 QAT-ER ,1 d DZMR d 18 URAFIA 7 e EEBO e 90 ALN LE 18-22 0:00 910-0 00:0 SXAFIA ,2 d FVRIOd 18 ET-ER 0 e EEER e 91 WR AD 18-22 0:00 910-2 00:0 DMNO OIG ,2 d FVRIOd 18 2 e EEER e 91 JNS OE 18-40 0:00 910-2 00:0 QIT-ER ,0 d ARL UNAFIA 2 e BI d 18 e 91 MRI ATN 18-92 0:00 910-8 00:0 SGNAFIA 2 d STMR d 18 EUD-ER, 8 e EEBO e 91 BAE LK 18-50 0:00 910-1 00:0 SXAFIA ,0 d MI ET-ER 1 e AO d 18 e 91 CAK LR 18-60 0:00 910-9 00:0 TRAFIA ,0 d JNO E-ER 9 e UH d 18 e 91 SOT CT 18-20 0:00 921-9 00:0 QIT-ER ,0 d DZMR d 18 UNAFIA 9 e EEBO e 92 KN IG 18-11 0:00 911-7 00:0 TRAFIA ,1 d NVMR d 18 E-ER 7 e OEBO e 91 TRE UNR 18-90 0:00 910-8 00:0 TRAFIA ,0 d STMR d 18 E-ER 8 e EEBO e 91 AAS DM 18-11 0:00 930-2 00:0 QAT-ER ,1 d JNIO d 18 URAFIA 2 e AER e 93 JMS AE 18-20 0:00 911-3 00:0 QIT-ER ,0 d DZMR d 18 UNAFIA 3 e EEBO e 91 FR OD 18-20 0:00 911-3 00:0 QIT-ER ,0 d DZMR d 18 UNAFIA 3 e EEBO e 91 MLE ILR 18-12 0:00 920-3 00:0 SBD AO ,2 d JNIO d 18 3 e AER e 92 1 rw slce 4 os eetd
aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm 2/11

14/01/13

Funes para converso de tipos

atrssinstnstrioy'OTGL; le eso e l_ertr=PRUA' atrssinstnslnug=PRUUS' le eso e l_agae'OTGEE; atrssinstnsdt_omt'yym-dh2:is' le eso e l_aefra=yy-md h4m:s; slc eet t_hrt_ae'060-71:54''yym-dh2:is','hm:s)"oaMntsSgno" oca(odt(20-71 21:5,yy-md h4m:s) h:is' Hr iuo euds, t_hrt_ae'060-71:54''yym-dh2:is','c' oca(odt(20-71 21:5,yy-md h4m:s) sc )"uo, Scl" t_hrt_ae'060-71:54''yym-dh2:is','ya' )"n pretno, oca(odt(20-71 21:5,yy-md h4m:s) ser Ao o xes" t_hrt_ae'060-71:54''yym-dh2:is','' oca(odt(20-71 21:5,yy-md h4m:s) q )"rmsr" Tiete, t_hrt_ae'060-71:54''yym-dh2:is','H4 oca(odt(20-71 21:5,yy-md h4m:s) H2' )"oae frao2" Hr m omt 4, t_hrt_ae'060-71:54''yym-dh2:is','H oca(odt(20-71 21:5,yy-md h4m:s) H' )"oafrao1" Hr omt 2 fo da; rm ul

atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. Hr MntsSgno Scl Aopretno TieteHr e frao2 Hr frao1 oa iuo euds uo n o xes rmsr oa m omt 4 oa omt 2 -------------- ----------------------- ----------------- --- -------- ---- --------- ------1:54 21:5 2 1 totosn sx3 w huad i 1 2 1 2 1rw slce os eetd

possvel alterar a lingua com que so escritos os meses e dias da semana usando o parmetro NLS_DATE_FORMAT dentro da prpria funo:
slc t_hrssae'o d h2:is''l_aelnug=mrcn)fo da; eet oca(ydt,Mn d h4m:s,nsdt_agaeaeia' rm ul

Dc1 1:00 e 9 63:7

Topo

EXTRACT(YEAR|MONTH|WEEK|DAY|HOUR|MINUTE|TIMEZONE FROM DATE|TIMESTAMP)


A funo EXTRACT surgiu na verso 9i e permite extrair as componentes de uma data. A sua sintaxe genrica :
ETAT( XRC {YA |MNH|DY|HU |MNT |SCN } ER OT A OR IUE EOD |{TMZN_OR|TMZN_IUE} IEOEHU IEOEMNT |{TMZN_EIN|TMZN_BR} IEOERGO IEOEAB FO {dt_au |itra_au }) RM aevle nevlvle

Tem as seguintes limitaes: De um tipo DATE apenas podemos extrair o ano, o ms e o dia; S podemos extrair TIMEZONE_HOUR e TIMEZONEMINUTE de um tipo TIMESTAMP que possua TIMEZONE; Seguem alguns exemplos de utilizao:
SLC ETATYA FO DT '020-1)FO da; EET XRC(ER RM AE 21-50' RM ul SLC ETATMNHFO DT '020-1)FO da; EET XRC(OT RM AE 21-50' RM ul SLC ETATDYFO DT '020-1)FO da; EET XRC(A RM AE 21-50' RM ul Slc etatya fo ssae fo da; eet xrc(er rm ydt) rm ul Slc etatmnhfo ssae fo da; eet xrc(ot rm ydt) rm ul Slc etatdyfo ssae fo da; eet xrc(a rm ydt) rm ul

aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm

3/11

14/01/13

Funes para converso de tipos

Slc etatya fo ssietm)fo da; eet xrc(er rm ytmsap rm ul Slc etatmnhfo ssietm)fo da; eet xrc(ot rm ytmsap rm ul Slc etatdyfo ssietm)fo da; eet xrc(a rm ytmsap rm ul Slc etathu fo ssietm)fo da; eet xrc(or rm ytmsap rm ul Slc etatmnt fo ssietm)fo da; eet xrc(iue rm ytmsap rm ul Slc etatscn fo ssietm)fo da; eet xrc(eod rm ytmsap rm ul Slc etattmzn_orfo ssietm)fo da; eet xrc(ieoehu rm ytmsap rm ul Slc etattmzn_iuefo ssietm)fo da; eet xrc(ieoemnt rm ytmsap rm ul Slc etattmzn_einfo ssietm)fo da; eet xrc(ieoergo rm ytmsap rm ul Slc etattmzn_brfo ssietm)fo da; eet xrc(ieoeab rm ytmsap rm ul

Topo

TO_CHAR(nmero, mscara de nmero)


A funo TO_CHAR(nmero) converte do formato numrico para cadeia de caracteres, seguindo a mscara escolhida pelo utilizador. Os valores possveis para a mascara esto descritos nesta pgina. A mascara '$999,999.99' representa uma quantia monetria que possui parte dcimal e separador de milhares. O resultado aparece sempre em formato americano, independentemente das variveis NLS:
slc t_hrsl'99999' eet oca(a,$9,9.9) fo ep rm m;

T_HRSL'99999' OCA(A,$9,9.9) ------------------------$0.0 800 $,0.0 1600 $,5.0 1200 $,7.0 2950 $,5.0 1200 $,5.0 2800 $,5.0 2400 $,0.0 3000 $,0.0 5000 $,0.0 1500 $,0.0 1100 $5.0 900 $,0.0 3000 $,0.0 1300 1 rw slce 4 os eetd

A mascara 'L999G999D99' representa a mesma quantia monetria, mas agora a forma como o nmero apresentado varia com os valores das variveis NLS:
atrssinstnstrioy'MRC' le eso e l_ertr=AEIA; atrssinstnslnug=AEIA' le eso e l_agae'MRCN; slc t_hrsl'99999' eet oca(a,L9G9D9) fo ep rm m; atrssinstnstrioy'OTGL; le eso e l_ertr=PRUA' atrssinstnslnug=PRUUS' le eso e l_agae'OTGEE; slc t_hrsl'99999' eet oca(a,L9G9D9) fo ep rm m;

atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee. T_HRSL'99999' OCA(A,L9G9D9) ------------------------aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm 4/11

14/01/13

Funes para converso de tipos

$0.0 800 $,0.0 1600 $,5.0 1200 $,7.0 2950 $,5.0 1200 $,5.0 2800 $,5.0 2400 $,0.0 3000 $,0.0 5000 $,0.0 1500 $,0.0 1100 $5.0 900 $,0.0 3000 $,0.0 1300 1 rw slce 4 os eetd

atrssinstscedd le eso e ucee. atrssinstscedd le eso e ucee.

T_HRSL'99999' OCA(A,L9G9D9) ------------------------0,0 800 .0,0 1600 .5,0 1200 .7,0 2950 .5,0 1200 .5,0 2800 .5,0 2400 .0,0 3000 .0,0 5000 .0,0 1500 .0,0 1100 5,0 900 .0,0 3000 .0,0 1300 1 rw slce 4 os eetd

Quando a varivel NLS_TERRITORY recebe o valor PORTUGAL o smbolo de moeda passa a ser . Este caracter muito recente e nem todos os CHARACTER SET da base de dados o representam, como o caso da base de dados onde foram executados estes exemplos; Nesta pgina encontra uma descrio mais detalhada deste assunto e uma forma de contornar este problema; Topo

TO_NUMBER(string)
A funo TO_NUMBER converte de cadeia de caracteres para em nmero.
slc epo eae jb sl eet mn, nm, o, a fo ep rm m weesl T_UBR'50) hr a> ONME(10';

EPO MN EAE NM JB O SL A ----------- ----- -------------------------- ----- ---- ----------79 49 ALN LE SLSA 10 AEMN 60 76 56 JNS OE MNGR 27 AAE 95 79 68 BAE LK MNGR 25 AAE 80 78 72 CAK LR MNGR 25 AAE 40 78 78 SOT CT AAYT 30 NLS 00 73 89 KN IG PEIET50 RSDN 00
aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm 5/11

14/01/13

Funes para converso de tipos

70 92 7rw slce os eetd

FR OD

AAYT NLS

30 00

Topo

MASCARA_DATA
A tabela abaixo mostra os valores possveis para a mscara da data: FORMATO SCC ou CC YYYY ou SYYYY YYY ou YY ou Y Y,YYY RR SYEAR ou YEAR BC ou AD B.C. ou A.D. Q MM MONTH MON WW, IW ou W DDD ou DD ou D DAY DY J AM ou PM A.M.ou P.M. HH ou HH12 HH24 MI SS SSSSS /.,: "string" FM TH, SP, SPTH, THSP SIGNIFICADO Sculo; 'S' faz preceder de '-' as datas 'BC' (Antes de Cristo) Sculo; 'S' faz preceder de '-' as datas 'BC' (Antes de Cristo) Ultimos 3 digitos do ano ou 2 ultimos ou ltimo digito do ano Ano com separador dos milhares nessa posio Ver descrio abaixo Ano por extenso (em ingls); 'S' faz preceder de '-' as datas 'BC' (Antes de Cristo) Indicador de BC/AD (Antes de Cristo / Depois de Cristo) Indicador de BC/AD com ponto Trimestre do ano Ms em nmero de 1..12 Nome do ms preenchido com espaos at 9 caracteres (Setembro) Nome do ms com trs letras (JAN, FEB, MAY,...) Semana do ano formato Oracle, semana do ano formato ISO ou semana do ms dia do ano, ms ou semana Nome do dia da semana, por extenso, preenchido com espaos at 9 caracteres Nome do dia da semana com dois caracteres Dia do calendrio Juliano; o nmero de dias desde 31 de Dezembro de 4713 A.C. Indicador de After Moon (AM) ou Post Moon (PM) Indicador de After Moon ou Post Moon com pontos Hora do dia em formato 1-12 Hora do dia em formato 0-23 Minutos Segundos Segundos decorridos desde a meia-noite Os smbolos de pontuao so reproduzidos no resultado A string reproduzida no resultado mas tem que vir entre aspas Prefixo que pode ser acrescentado aos cdigos anteriores; utilizado em MONTH ou DAY suprime o preenchimento de espaos; usado com nmeros suprime os zeros esquerda Sufixos que converte um nmero em ordinal ou por extenso; usando os dois fica nmero por extenso ordinal

Quando a mscara escrita em maisculas, o resultado aparece em maisculas. Quando a mscara escrita em minusculas, o resultado aparece em minsculas. Para mais informao consultar este link Topo

aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm

6/11

14/01/13

Funes para converso de tipos

O ORACLE e o ano 2000


Se utilizar o elemento de formato de data RR em vez de YY, o sculo no valor produzido varia de acordo com os dois dgitos que especificam o ano e os dois digitos do ano actual. Ano devolvido por SYSDATE 1994 1994 2001 2001 Valor formulado (DD-MON-RR) 27-OUT-95 27-OUT-17 27-OUT-95 27-OUT-17 Ano interpretado 1995 2017 1995 2017

Como funciona: Se o ano especificado for 0..49 Ano Actual Ano Actual 00..49 A data devolvida do sculo actual 50..99 A data devolvida do sculo seguinte 50..99 A data devolvida do sculo anterior ao actual A data devolvida do sculo actual

Topo

Mscara para Nmero


O quadro abaixo mostra os formatos que esto disponveis para nmeros. Formato 9 0 $ L . , D G MI PR EEEE V B FM Significado Posio numrica - o nmero de 9s determina a largura de visualizao Zeros antes do nmero Smbolo de moeda americana Smbolo de moeda que varia com NLS_TERRITORY Usar o ponto como separador das casas dcimais Usar a virgula como separador dos milhares (tambm conhecido por smbolo de grupo) Usar um separador dcimal que varia com NLS_TERRITORY. Nos pases anglo-saxnicos o ponto. Em Portugal a virgula Separador dos milhares que varia com NLS_TERRITORY. Nos pases anglo-saxnicos a virgula. Em Portugal o ponto Coloca sinal menos direita nos valores negativos Coloca nmeros negativos entre parentisis Notao cientfica. O nmero de 9s depois do ponto define a preciso Multiplicar por 10n. n=nmero de 9s depois de V Converte os nulos em espaos em branco Remover os espaos em branco esquerda e direita Exemplo 999999 099999 $999999 L999999 999999.99 999,999 999999.99 999,999 999999MI 999999PR 9.9999EEEE 9999V99 B9999.99 L999999 Resultado 1234 001234 $1234 ?1234 1234.00 1,234 1234.00 ou 1234,00 1,234 ou 1.234 1234(1234) 1.2340E+03 123400 1234.00 ?1234

Quando o nmero no cabe na mscara o SQL coloca ### em seu lugar.


slc t_hr13,99) eet oca(24'9' fo da; rm ul

aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm

7/11

14/01/13

Funes para converso de tipos

T_HR13,99) OCA(24'9' -----------------## ## 1rw slce os eetd

Topo

CHR(v1)
Devolve o caracter representado por v1 no cdigo WE8DEC, ISO8859P1 ou outro.
slc cr4)a "H(9" cr9)a "H(7" cr3)a "H(8" eet h(9 s CR4), h(7 s CR9), h(8 s CR3) fo da; rm ul

CCC --1a& 1rwslce. o eetd

Topo

NVL(v1,v2)
Se o valor de v1 for nulo, a funo devolve v2.
slc sl cm,sl1+V(om0 eet a, om a*4NLcm,) fo ep rm m;

SL A CM OM SL1+V(OM0 A*4NLCM,) ----------- ----------- --------------------- ----------- ----------80 0 120 10 10 60 30 0 270 20 15 20 50 0 100 80 27 95 460 15 15 20 10 40 190 80 25 80 390 90 25 40 330 40 30 00 400 20 50 00 700 00 10 50 0 200 10 10 10 140 50 90 5 130 30 30 00 400 20 10 30 120 80 1 rw slce 4 os eetd

Topo

GREATEST(v1,v2,v3)
Devolve o maior dos valores v1, v2 ou v3. A funo pode receber mais que 3 argumentos.
slc eet gets(,) raet12, gets(,,) raet123,
aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm 8/11

14/01/13

Funes para converso de tipos

gets(,,,) raet1234 fo da; rm ul

GETS(,) RAET12 GETS(,,) RAET123 GETS(,,,) RAET1234 ----------- ----------- --------------------- ----------- ----------2 3 4 1rw slce os eetd

Topo

DECODE
A sintaxe do comando DECODE a seguinte:
DCD (, EOE v v,r 1 1 v,r 2 2 rdfut; _eal)

Se a expresso v assumir o valor v1 ento colocado o resultado r1, se v2 ento r2. Se nenhum desses valores ocorrer ento colocado r_default. Simula um comando if-then-else ou um comando CASE com sinal de igual (=). O nmero de pares de valores (v1,r1) pode variar. O valor r_default facultativo.

A expresso v pode ser o nome de uma coluna ou o resultado de uma funo; O resultado da expresso v e os valores v1, v2, ... tm que ser do mesmo tipo; Se r_default for omitido devolvido null nos casos em que a condio no satisfaa nenhuma das alternativas v1, v2, ....
slc eet gae rd, dcd (rd, eoe gae 1'5' ,1%, 2'0' ,1%, 3'%, ,8' '%)"ou" 5' Bns fo slrd; rm agae

GAE RD Bns ou ----------- ------------- -1 1% 5 2 1% 0 3 8 % 4 5 % 5 5 % 5rw slce os eetd

slc eet eae nm, jb o, dcd(o, eoejb 'LR' CEK, 'mrgd d ecii' Epeao e srtro, 'NLS' AAYT, 'nlsapormdr, Aait rgaao' 'AAE' MNGR, 'etr, Gso' 'AEMN, 'eddr, SLSA' Vneo' 'RSDN' 'rsdne, PEIET, Peiet' 'NNW' UKON) "o2 Jb" fo ep rm m;
aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm 9/11

14/01/13

Funes para converso de tipos

EAE NM JB O Jb o2 ----- --------------------- ---- ----------SIH MT CEK LR Epeaod ecii mrgd e srtro ALN LE SLSA Vneo AEMN eddr WR AD SLSA Vneo AEMN eddr JNS OE MNGR Gso AAE etr MRI ATN SLSA Vneo AEMN eddr BAE LK MNGR Gso AAE etr CAK LR MNGR Gso AAE etr SOT CT AAYT Aait pormdr NLS nlsa rgaao KN IG PEIETPeiet RSDN rsdne TRE UNR SLSA Vneo AEMN eddr AAS DM CEK LR Epeaod ecii mrgd e srtro JMS AE CEK LR Epeaod ecii mrgd e srtro FR OD AAYT Aait pormdr NLS nlsa rgaao MLE ILR CEK LR Epeaod ecii mrgd e srtro 1 rw slce 4 os eetd

Topo

CASE
A instruo CASE semelhante ao DECODE mas permite comparaes com >, >=, <, <=. O exemplo abaixo mostra como substituir o DECODE do ponto anterior por um CASE:
slc eet eae nm, jb o, cs we jb'LR' ae hn o=CEK te 'mrgd d ecii' hn Epeao e srtro we jb'NLS' te 'nlsapormdr hn o=AAYT hn Aait rgaao' we jb'AAE' te 'etr hn o=MNGR hn Gso' we jb'AEMN te 'eddr hn o=SLSA' hn Vneo' we jb'RSDN'te 'rsdne hn o=PEIET hn Peiet' es le 'ur fn' Ota uo ed a "uo n s Fn" fo ep rm m;

EAE NM JB O Fn uo ----- --------------------- ---- ----------SIH MT CEK LR Epeaod ecii mrgd e srtro ALN LE SLSA Vneo AEMN eddr WR AD SLSA Vneo AEMN eddr JNS OE MNGR Gso AAE etr MRI ATN SLSA Vneo AEMN eddr BAE LK MNGR Gso AAE etr CAK LR MNGR Gso AAE etr SOT CT AAYT Aait pormdr NLS nlsa rgaao KN IG PEIETPeiet RSDN rsdne TRE UNR SLSA Vneo AEMN eddr AAS DM CEK LR Epeaod ecii mrgd e srtro JMS AE CEK LR Epeaod ecii mrgd e srtro FR OD AAYT Aait pormdr NLS nlsa rgaao MLE ILR CEK LR Epeaod ecii mrgd e srtro 1 rw slce 4 os eetd

A expresso CASE mais flexivel que DECODE pois suporta outros operadores de comparao alm de =:
slc sl eet a, cs we sl< 80 te 'ax' ae hn a 0 hn bio we sl<10 te 'i' hn a 50 hn mdo we sl<20 te 'i at' hn a 50 hn mdo lo
aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm 10/11

14/01/13

Funes para converso de tipos

es le eda Slro n s aai fo ep rm m;

'lo at'

SLSLRO A AAI ----- --------- ----80mdo 0 i 10 mdoat 60 i lo 15 mdo 20 i 27 at 95 lo 15 mdo 20 i 25 at 80 lo 25 mdoat 40 i lo 30 at 00 lo 50 at 00 lo 10 mdoat 50 i lo 10 mdo 10 i 90mdo 5 i 30 at 00 lo 10 mdo 30 i 1 rw slce 4 os eetd

Topo
Realizado por Jose Aser Lorenzo. ltima alterao em 2012-05-01

aserlorenzo.com/manSQL/Oracle/dml/funcoes/funcoesconversao.htm

11/11

Você também pode gostar