SQL em Oracle > DML > Funções > Funções de linha > Funções encadeadas
Funções encadeadas tl_logo2.jpg

As funções de linha podem ser progressivamente encadeadas, umas dentro das outras. A avaliação é feita das funções interiores para as funções exteriores.

Como faria para saber quantas vezes aparece um determinado caracter dentro de uma string? Uma solução é encadear as funções LENGTH e TRANSLATE. No exemplo abaixo o caracter A é substituido por A (não muda) e S por nada (é retirado). A diferença de comprimentos dá o número de S's!

select dname, LENGTH(dname), LENGTH(dname)-LENGTH(TRANSLATE(dname,'AS','A'))
from dept;
DNAME          LENGTH(DNAME)          LENGTH(DNAME)-LENGTH(TRANSLATE(DNAME,'AS','A')) 
-------------- ---------------------- ----------------------------------------------- 
ACCOUNTING     10                     0                                               
RESEARCH       8                      1                                               
SALES          5                      2                                               
OPERATIONS     10                     1                                               

4 rows selected

bthome.gifTopo


Realizado por Turtle Learning ®. Última alteração em 2011-02-26