Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Funções de linha única no Oracle sql


Isso faz parte do tutorial Oracle SQL e tem bons exemplos, explicação sobre funções de linha única no Oracle Sql

Funções são programas que recebem zero ou mais argumentos e retornam um único valor.

As funções podem ser uma única linha, várias funções de linha

Estaremos discutindo aqui funções de linha única em SQL

O que são funções de linha única no Oracle SQL


As funções de linha única são funções integradas e incluem caracteres, números, data, conversão e funções definidas pelo usuário.

Todas as funções de linha única podem ser usadas em programas SQL ou PL/SQL e podem ser usadas nas cláusulas SELECT, WHERE e ORDER BY.

As funções de linha única incluem TO_CHAR, TO_DATE, UPPER, LOWER etc.

As funções de linha única também podem ser usadas na cláusula SET e no comando UPDATE. Funções de linha única não podem ser usadas em uma cláusula HAVING.

Vamos examinar as várias funções importantes de linha única

Funções de personagem em  SQL


As funções de caractere são:
LOWER(‘char’)  :converter string para minúscula
SQL> selecione ename de "EMP";ENAME----------BlakeClarkScottSQL> selecione lower(ename) de "EMP";LOWER(ENAM----------blakeclarkscott 
UPPER('CHAR')  :converte string para maiúscula
SQL> selecione superior(ename) de "EMP";UPPER(ENAM----------BLAKECLARKSCOTT

INITCAP(‘Char’):retorna uma string com a primeira letra de cada palavra em maiúscula
SQL> selecione initcap(ename) de "EMP";INITCAP(EN----------BlakeClarkScott

CONCAT – A função tem um limite de dois parâmetros.
SQL> selecione concat(ename,DEPTNO) de emp;CONCAT(ENAME,DEPTNO)----------------------------- ---------------------Blake10Clark10Scott20SQL> selecione concat(ename,empno,DEPTNO) de emp;selecione concat(ename,empno,DEPTNO) de emp *ERROR na linha 1:ORA-00909:número inválido de argumentos

LENGTH:retorna o comprimento da string
SQL> selecione ename,length(ename) de emp;ENAME LENGTH(ENAME)---------- -------------Blake 5Clark 5Scott 5

LENGTHB:retorna o comprimento de uma string em bytes
SQL> selecione ename,length(ename),lengthb(ename) de emp;ENAME LENGTH(ENAME) LENGTHB(ENAME)---------- ----------- -- --------------Blake 5 5Clark 5 5Scott 5 5

INSTR :retorna o índice da string pesquisada dentro de uma string,
SQL> selecione ename,instr(ename,'A') de emp;ENAME INSTR(ENAME,'A')---------- ------------ ----Blake 0Clark 0Scott 0SQL> selecione ename,instr(ename,'a') de emp;ENAME INSTR(ENAME,'A')---------- -------- --------Blake 3Clark 3Scott 0

LPAD:preenchimento esquerdo de uma string com n caracteres
SQL> selecione ename,lpad(ename,12) de emp;ENAME LPAD(ENAME,12)---------- ---------------- --------------------Blake BlakeClark ClarkScott ScottSQL> selecione ename,lpad(ename,12,'-') de emp;ENAME LPAD(ENAME,12,'- ')---------- ------------------------------------Blake - ------BlakeClark -------ClarkScott -------Scott

LTRIM:tira os caracteres iniciais de uma string
SQL> selecione ltrim(' name') de dual;LTRI----nameSQL> selecione ltrim(' name ') de dual;LTRIM('-------nameSQL> selecione LTRIM('000123' , '0') de dual;LTR---123SQL> selecione LTRIM('1000123', '0') de dual;LTRIM('-------1000123

REPLACE:realiza uma pesquisa de substring e substitui
SELECT REPLACE('JACK e JUE','J','BL') "Alterações" FROM DUAL;Alterações----------PRETO e AZUL

SUBSTR – retorna uma seção de string especificada em valores numéricos
SUBSTRB – igual a SUBSTR apenas com bytes
SOUNDEX – retorna uma representação fonética de uma string
TRANSLATE – realiza pesquisa e substituição de caracteres
TRIM – caracteres à esquerda e à direita da string
Exemplos selecione emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') de dept;selecione lower(emp_name) de employee;select upper(first_name) de emp;

Como explicado, a função de linha única funciona em cada linha

Relacionado: processamento de decodificação Oracle sql

Funções numéricas em Sql


As funções numéricas são:
ROUND :arredonda um número
SQL> selecione round(3.456) de dual;ROUND(3.456)------------ 3SQL> selecione round(3.456,2) de dual;ROUND(3.456,2)--- ----------- 3,46

TRUNC :trunca um número
MOD:retorna o módulo, ou seja, o restante
SQL> selecione mod(4,2) de dual; MOD(4,2)---------- 0SQL> selecione mod(4,3) de dual; MOD(4,3)---------- 1

SIGN:retorna positivo, negativo ou zero
CEIL – retorna o próximo número mais alto
SQL> selecione ceil(3.1) de dual; CEIL(3.1)---------- 4SQL> selecione ceil(3) de dual; CEIL(3)---------- 3

LOG – retorna o logaritmo
FLOOR – retorna o próximo número menor
SQL> selecione floor(3.1) de dual;FLOOR(3.1)---------- 3SQL> selecione floor(3) de dual; PISO(3)---------- 3

SQRT – retorna a raiz quadrada de um número
Exemplos SELECT SQRT(25) "Raiz quadrada" FROM DUAL;SELECT order_total, CEIL(order_total) FROM orders WHERE order_id =58758;

Funções de data do Oracle


As funções de data do Oracle são:
SYSDATE :return current date
DUAL
MONTHS_BETWEEN (Retorna um número):retorna o número do mês entre duas datas
ADD_MONTHS :add a number of months to data
NEXT_DAY :retorna o próximo dia da semana após uma determinada data
LAST_DAY :retorna o último dia do mês


DBTIMEZONE – retorna o fuso horário do banco de dados
TRUNC:trunca uma data.
CURRENT_TIMESTAMP – retorna a data e hora no formato TIMESTAMP
Exemplos SQL> selecione CURRENT_TIMESTAMP de dual;CURRENT_TIMESTAMP------------------------------------------ ----------------------------------01-SEP-19 04.33.26.493097 PM +00:00SQL> selecione sysdate de dual;SYSDATE---------------01-SET-19

Funções de conversão de tipo explícito


TO_CHAR -converte número ou data para VARCHAR2
TO_NUMBER :Converte caractere para número
TO_DATE:Converte para data
Exemplos SQL> selecione to_char(sysdate ,'DD-MON-YYYY,MI') de dual 2;TO_CHAR(SYSDATE,'DD----------01- SET-2019,34

Outras funções


NVL (expr1, expr2) e NVL3
NVL – recebe dois argumentos:NVL(x1, x2), retorna x2 quando x1 é NULL ou x1 quando x1 não é NULL. NVL2 – recebe três argumentos:NVL2(x1, x2, x3), retorna x3 quando x1 é NULL ou x2 quando x1 não é NULL

DECODE Esta função funciona como uma instrução IF-THEN-ELSE ou CASE.
COALESCE – retorna o primeiro valor não NULL em uma lista
SYS_CONTEXT – retorna atributos do sistema
UID – retorna o ID numérico do usuário para a sessão atual

Pequeno teste para testar o conhecimento sobre funções de linha única em SQL


Pergunta 1 :você está usando funções de linha única em uma instrução select. Qual função pode ser melhor categorizada como semelhante em função a uma instrução if-then-else?

A) sqrt( )
B) decodificar( )
C) rowidtochar( )
D) new_time()

Explicação:

A função decode( ) age como uma cláusula if-then-else em suas instruções SQL. A opção sqrt( ) está incorreta porque sqrt( ) produz
raiz quadrada de um número. A opção new_time( ) está incorreta porque a função new_time( ) retorna uma nova hora com base nos valores especificados na chamada para essa função.

Finalmente, a opção rowidtochar( ) está incorreta porque rowidtochar( ) é uma função que converte informações de ROWID em informações de CHAR.

Pergunta 2:

Você deseja usar funções de linha única em suas instruções SQL. Quais das três opções a seguir são funções numéricas? (Escolha três dos quatro.)

A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Explicação:
A única função não numérica neste list é a função to_number( ),
que é uma operação de conversão.

Pergunta 3 A seguinte instrução SQL foi retirada de uma sessão SQL*Plus:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
onde substr(ENAME,1,1)> to_number ('V') e EMPNO> 1000
ordem por EMPNO desc, ENAME asc;

Qual das seguintes linhas na instrução select mostrada no
bloco de código anterior contém um erro?

A) selecione decode(EMPNO, 58385, 'INACTIVE', 'ACTIVE') empno
B) de EMP
C) e EMPNO> 02000
D) onde substr(ENAME,1,1 )> to_number('S')
E) ordem por EMPNO desc, ENAME asc;

Explicação:(D)
Caracteres alfabéticos, como S, não podem ser convertidos em números. Quando esta instrução for executada, ela produzirá um erro nesta linha. As
outras linhas nesta consulta estão corretas como compostas.



Pergunta 4  Qual instrução SELECT obterá o resultado 'elloworld' da string 'HelloWorld'?
A. SELECT SUBSTR('HelloWorld',1) FROM dual;
B. SELECT INITCAP(TRIM('HelloWorld', 1,1)) FROM dual;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM(' H' FROM 'HelloWorld')) FROM dual;
Resposta:E

Espero que você goste deste post sobre funções de linha única em SQL. Por favor, forneça o feedback

Artigos relacionados
Funções analíticas no oracle:as funções analíticas do Oracle calculam um valor agregado com base no grupo de linhas usando a cláusula over partition by oracle, elas diferem das funções agregadas
classificação no oracle:RANK, DENSE_RANK e ROW_NUMBER são oracle analíticos função que são usadas para classificar linhas no grupo de linhas chamado window
Função Lead no oracle :Confira a função LAG no Oracle e a função Lead no Oracle, como usá-las em consultas analíticas e como funciona no Oracle sql
Top-N Queries no Oracle:Confira esta página para explorar as várias maneiras de obter Top-N Queries no Oracle e Paginação no banco de dados oracle de consulta oracle.