1. Concatenando 2 strings
Existem duas formas de trabalhar concatenando strings. CONCAT e PIPE
Concat:
Usando PIPE:
2. Colocando a primeira letra do texto como Maiúscula.
3. Alternar entre Maiúscula e Minúscula
4. Convertendo letras em códigos ASCII
5. Localizando a posição uma string no meio do texto
Com a função INSTR, é possível localizar caracteres dentro de um texto, de forma normal ou inversa.
Localizando a primeira posição da string no texto
Localizando a segunda posição da string no texto
Localizando a terceira posição da string no texto
Localizando a quarta posição da string no texto, como não existe mais de 3 letras r no texto, ele retorna zero.
Para realizar a mesma pesquisa so que de ordem inversa, basta usar o valor negativo na função
Nestas condições, ele me retorna a primeira posição na ordem inversa, ou seja, a última.
6. Atribuindo dígitos no final e/ou no inicio do texto.
Temos como usar o LPAD para inserir digitos na esquerda e RPAD para inserir digitos na direita.
LPAD:
RPAD:
7.Removendo dígitos do inicio ou do fim ou de ambos do texto
Podendo ser espaços em branco ou letras (TRIM só remove espaços em branco).
LTRIM:
RTRIM:
TRIM:
8. Como inverter o conteúdo em uma string
9. Substituindo Strings por outras Strings
Com a Função Replace é possível substituir o conjunto de caracteres por outro, no exemplo abaixo, ele vai alterar o valor DE para A
10. Cortando conteúdo do texto com SUBSTR
Com essa função, é possível exibir somente partes do texto. No exemplo abaixo, digo que quero iniciar meu texto da posição 3 e andar mais 9 dígitos.
11. Descobrindo o tamanho da string com a função LENGTH.
12. Retornando colunas com valor não nulo
Com a função COALESCE. Ela pesquisa entre as colunas passada e retorna o primeiro valor não nulo que foi encontrado.
13.1 Pesquisando em uma string por um digito e exibindo o resto
Pesquisando em uma string por um digito e exibindo o resto da string pegando como base esse digito localizado. Bom, primeiro preciso saber qual a posição que preciso começar, neste caso, vou iniciar pela '\'. Vou pesquisar do fim para o inicio e localizar neste caso, a localização da ultima barra.
Depois de localizar, preciso então usar ela como ponto inicial e ir até o final da string completa. Como não sei o tamanho total da minha string, pois, pode ser que ela mude algum dia, vou usar a função LENGTH que me retornará o tamanho total.
Depois de localizar o inicio e fim da minha string através das funções acima, preciso ajustar para que a barra não saia… a função SUBSTR está iniciando da posição 11 e indo até a posição final da string, por isso está me retornando a barra, então, preciso somar + 1 ao retorno da localização da '\', para então ela não aparecer no meu resutlado.
Então, andando da posição 12 até a ultima posição, consigo através do substr cortar parte do texto e extrair somente o que desejo.
13.2 Pegar uma String e inserir um valor no meio dela
Eu tenho uma String chamada 'Existe Perfeita ' e quero inserir o Lógica no meio dela utilizando uma query…
Pegando trechos do ultimo exemplo (13.1) vamos montar nossa query e assim ter nosso retorno…
Primeiro preciso pegar o espaço em branco, levando em consideração que é o meio da string.
Agora vamos cortar somente o inicio da string, com SUBSTR vamos pegar da posição 1 até o espaço em branco (posição 7)
Temos então somente o Existe. Vamos então inserir (concatenar) o texto que queremos e ter como resultado o Existe Lógica
Agora falta inserir a parte final… vamos então pegar a String inicial e então cortar a parte do meio até o fim. Já sei qual o meio e para descobrir o fim é só usar a função LENGTH e então temos o resultado que queremos.
Existem duas formas de trabalhar concatenando strings. CONCAT e PIPE
Concat:
1.SQL: SELECT
CONCAT ('Rodrigo ', 'Valentim') FROM
dual;
2.CONCAT(
'RODRIGO',
'VALENTIM')
3.----------------------------
4.Rodrigo Valentim
Usando PIPE:
1.SQL:
SELECT 'Rodrigo '||
'Valentim' FROM dual;
2.
'RODRIGO'||
'VALENTIM'3.
--------------------- 4.Rodrigo Valentim
2. Colocando a primeira letra do texto como Maiúscula.
1.SQL:
SELECT INITCAP(
'rodrigo valentim')
FROM dual;
2.INITCAP(
'RODRIGOVALENTIM')
3.
-------------------------- 4.Rodrigo Valentim
3. Alternar entre Maiúscula e Minúscula
1.SQL:
SELECT LOWER(
'RODRIGO ')||UPPER(
'valentim')
FROM dual;
2.LOWER(
'RODRIGO')||UPPER('VALEN
3.
------------------------------ 4.rodrigo VALENTIM
4. Convertendo letras em códigos ASCII
01.SQL:
SELECT ASCII(
'A')
FROM dual;
02.ASCII(
'A')
03.
---------- 04.65
05.
06.SQL:
SELECT ASCII(
'Z')
FROM dual;
07.ASCII(
'Z')
08.
---------- 09.90
10.
11.SQL:
SELECT ASCII(
'a')
FROM dual;
12.ASCII(
'A')
13.
---------- 14.97
15.
16.SQL:
SELECT ASCII(
'z')
FROM dual;
17.ASCII(
'Z')
18.
---------- 19.122
20.
21.SQL:
SELECT ASCII(
' ')
FROM dual;
22.ASCII(
'')
23.
---------- 24.32
5. Localizando a posição uma string no meio do texto
Com a função INSTR, é possível localizar caracteres dentro de um texto, de forma normal ou inversa.
Localizando a primeira posição da string no texto
1.SQL:
SELECT INSTR(
'Exemplo de como realizar pesquisa em uma string',
'r', 1, 1) localiza_1
from dual;
2.LOCALIZA_1
3.
---------- 4.17
Localizando a segunda posição da string no texto
1.SQL:
SELECT INSTR(
'Exemplo de como realizar pesquisa em uma string',
'r', 1, 2) localiza_2
from dual;
2.LOCALIZA_2
3.
---------- 4.24
Localizando a terceira posição da string no texto
1.SQL:
SELECT INSTR(
'Exemplo de como realizar pesquisa em uma string',
'r', 1, 3) localiza_3
from dual;
2.LOCALIZA_3
3.
---------- 4.44
Localizando a quarta posição da string no texto, como não existe mais de 3 letras r no texto, ele retorna zero.
1.SQL:
SELECT INSTR(
'Exemplo de como realizar pesquisa em uma string',
'r', 1, 4) localiza_4
from dual;
2.LOCALIZA_4
3.
---------- 4.0
Para realizar a mesma pesquisa so que de ordem inversa, basta usar o valor negativo na função
1.SQL:
SELECT INSTR(
'Exemplo de como realizar pesquisa em uma string',
'r', -1, 1) localiza_1
from dual;
2.LOCALIZA_1
3.
---------- 4.44
Nestas condições, ele me retorna a primeira posição na ordem inversa, ou seja, a última.
6. Atribuindo dígitos no final e/ou no inicio do texto.
Temos como usar o LPAD para inserir digitos na esquerda e RPAD para inserir digitos na direita.
LPAD:
1.SQL:
SELECT LPAD(
'Rodrigo Valentim', 25,
'x')
FROM dual;
2.LPAD(
'RODRIGOVALENTIM',25,
'X')
3.
------------------------------ 4.xxxxxxxxxRodrigo Valentim
RPAD:
1.SQL:
SELECT RPAD(
'Rodrigo Valentim', 25,
'x')
FROM dual;
2.RPAD(
'RODRIGOVALENTIM',25,
'X')
3.
------------------------------ 4.Rodrigo Valentimxxxxxxxxx
7.Removendo dígitos do inicio ou do fim ou de ambos do texto
Podendo ser espaços em branco ou letras (TRIM só remove espaços em branco).
LTRIM:
1.SQL:
SELECT '*' || LTRIM(
' Rodrigo Valentim ') ||
'*' FROM dual;
2.
'*'||LTRIM(
'RODRIGOVALENTIM')|
3.
--------------------------------- 4.*Rodrigo Valentim *
RTRIM:
1.SQL:
SELECT '*' || RTRIM(
' Rodrigo Valentim ') ||
'*' FROM dual;
2.
'*'||RTRIM(
'RODRIGOVALENTIM')|
3.
--------------------------------- 4.* Rodrigo Valentim*
TRIM:
1.SQL:
SELECT '*'||TRIM(
' Rodrigo Valentim ')||
'*' FROM dual;
2.
'*'||TRIM(
'RODRIGOVALENTIM')||
3.
------------------------------ 4.*Rodrigo Valentim*
8. Como inverter o conteúdo em uma string
1.SQL:
select reverse(
'MITNELAV OGIRDOR')
from dual;
2.REVERSE(
'MITNELAVOGIRDOR')
3.
-------------------------- 4.RODRIGO VALENTIM
9. Substituindo Strings por outras Strings
Com a Função Replace é possível substituir o conjunto de caracteres por outro, no exemplo abaixo, ele vai alterar o valor DE para A
1.SQL:
SELECT REPLACE(
'ABCDE',
'DE',
'A')
FROM dual;
2.REPLACE(
'ABCDE',
'DE',
'A')
3.
------------------------- 4.ABCA
10. Cortando conteúdo do texto com SUBSTR
Com essa função, é possível exibir somente partes do texto. No exemplo abaixo, digo que quero iniciar meu texto da posição 3 e andar mais 9 dígitos.
1.SQL:
SELECT SUBSTR(
'Rodrigo Valentim', 3, 9) FIRST_FOUR
FROM dual;
2.FIRST_FOUR
3.
---------- 4.drigo Val
11. Descobrindo o tamanho da string com a função LENGTH.
1.SQL:
SELECT LENGTH(
'Rodrigo Valentim')
FROM dual;
2.LENGTH(
'RODRIGOVALENTIM')
3.
------------------------- 4.16
12. Retornando colunas com valor não nulo
Com a função COALESCE. Ela pesquisa entre as colunas passada e retorna o primeiro valor não nulo que foi encontrado.
1.SQL:
create table artigo_coalesce(col1 varchar2(10), col2 varchar2(10), col3 varchar2(10), col4 varchar2(10));
2.
Table created
01.SQL:
insert into artigo_coalesce
values (NULL, NULL,
'C',
'D');
02.1 row inserted
03.SQL:
insert into artigo_coalesce
values (NULL,
'A',
'C',
'D');
04.1 row inserted
05.SQL:
insert into artigo_coalesce
values (
'B',
'A',
'C',
'D');
06.1 row inserted
07.SQL:
insert into artigo_coalesce
values (NULL,
'D', NULL,
'A');
08.1 row inserted
09.SQL:
SELECT COALESCE(COL1, COL2, COL3, COL4)
FROM artigo_coalesce;
10.COALESCE(COL1,COL2,COL3,COL4)
11.
----------------------------- 12.C
13.A
14.B
15.D
13.1 Pesquisando em uma string por um digito e exibindo o resto
Pesquisando em uma string por um digito e exibindo o resto da string pegando como base esse digito localizado. Bom, primeiro preciso saber qual a posição que preciso começar, neste caso, vou iniciar pela '\'. Vou pesquisar do fim para o inicio e localizar neste caso, a localização da ultima barra.
1.SQL:
select INSTR(
'c:\arquivo\arquivo.txt',
'\', -1, 1) from dual; 2.
INSTR('C:\ARQUIVO\ARQUIVO.TXT'
3.
------------------------------ 4.11
Depois de localizar, preciso então usar ela como ponto inicial e ir até o final da string completa. Como não sei o tamanho total da minha string, pois, pode ser que ela mude algum dia, vou usar a função LENGTH que me retornará o tamanho total.
1.SQL:
SELECT substr(
'c:\arquivo\arquivo.txt',INSTR(
'c:\arquivo\arquivo.txt',
'\', -1, 1) ,length('c:\arquivo\arquivo.txt
')) from dual; 2.
SUBSTR('C:\ARQUIVO\ARQUIVO.TXT
3.
------------------------------ 4.\arquivo.txt
Depois de localizar o inicio e fim da minha string através das funções acima, preciso ajustar para que a barra não saia… a função SUBSTR está iniciando da posição 11 e indo até a posição final da string, por isso está me retornando a barra, então, preciso somar + 1 ao retorno da localização da '\', para então ela não aparecer no meu resutlado.
1.SQL:
SELECT substr(
'c:\arquivo\arquivo.txt',INSTR(
'c:\arquivo\arquivo.txt',
'\', -1, 1) + 1 ,length('c:\arquivo\arquivo.txt
')) from dual; 2.
SUBSTR('C:\ARQUIVO\ARQUIVO.TXT
3.
------------------------------ 4.arquivo.txt
Então, andando da posição 12 até a ultima posição, consigo através do substr cortar parte do texto e extrair somente o que desejo.
13.2 Pegar uma String e inserir um valor no meio dela
Eu tenho uma String chamada 'Existe Perfeita ' e quero inserir o Lógica no meio dela utilizando uma query…
Pegando trechos do ultimo exemplo (13.1) vamos montar nossa query e assim ter nosso retorno…
Primeiro preciso pegar o espaço em branco, levando em consideração que é o meio da string.
1.SQL:
SELECT instr(
'Existe Perfeita ',
' ')
FROM dual;
2.INSTR(
'EXISTEPERFEITA ',
'')
3.
--------------------------- 4.7
Agora vamos cortar somente o inicio da string, com SUBSTR vamos pegar da posição 1 até o espaço em branco (posição 7)
1.SQL:
SELECT substr(
'Existe Perfeita ',1,instr(
'Existe Perfeita ',
' '))
FROM dual;
2.SUBSTR(
'EXISTEPERFEITA ',1,INS
3.
------------------------------ 4.Existe
Temos então somente o Existe. Vamos então inserir (concatenar) o texto que queremos e ter como resultado o Existe Lógica
1.SQL:
SELECT substr(
'Existe Perfeita ',1,instr(
'Existe Perfeita ',
' '))||
'Lógica' FROM dual;
2.SUBSTR(
'EXISTEPERFEITA ',1,INS
3.
------------------------------ 4.Existe Lógica
Agora falta inserir a parte final… vamos então pegar a String inicial e então cortar a parte do meio até o fim. Já sei qual o meio e para descobrir o fim é só usar a função LENGTH e então temos o resultado que queremos.
1.SQL:
SELECT substr(
'Existe Perfeita ',1,instr(
'Existe Perfeita ',
' '))||
'Logica'||substr(
'Existe Perfeita ',instr(
'Existe Perfeita ',
' '),length(
'Existe Perfeita '))
"Existe " FROM dual;
2.Existe
3.
----------------------- 4.Existe Logica Perfeita
0 comentários:
Postar um comentário