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 ValentimUsando PIPE:
1.SQL: SELECT 'Rodrigo '||'Valentim' FROM dual; 2.'RODRIGO'||'VALENTIM'3.--------------------- 4.Rodrigo Valentim2. Colocando a primeira letra do texto como Maiúscula.
1.SQL: SELECT INITCAP('rodrigo valentim') FROM dual; 2.INITCAP('RODRIGOVALENTIM') 3.-------------------------- 4.Rodrigo Valentim3. Alternar entre Maiúscula e Minúscula
1.SQL: SELECT LOWER('RODRIGO ')||UPPER('valentim') FROM dual; 2.LOWER('RODRIGO')||UPPER('VALEN 3.------------------------------ 4.rodrigo VALENTIM4. 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.325. 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.17Localizando 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.24Localizando 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.44Localizando 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.0Para 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.44Nestas 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 ValentimRPAD:
1.SQL: SELECT RPAD('Rodrigo Valentim', 25, 'x') FROM dual; 2.RPAD('RODRIGOVALENTIM',25,'X') 3.------------------------------ 4.Rodrigo Valentimxxxxxxxxx7.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 VALENTIM9. 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.ABCA10. 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 Val11. Descobrindo o tamanho da string com a função LENGTH.
1.SQL: SELECT LENGTH('Rodrigo Valentim') FROM dual; 2.LENGTH('RODRIGOVALENTIM') 3.------------------------- 4.1612. 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 created01.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.D13.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.11Depois 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.txtDepois 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.txtEntã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.7Agora 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.ExisteTemos 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ógicaAgora 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