Esto es parte del tutorial de Oracle SQL y tiene buenos ejemplos, explicaciones sobre funciones de una sola fila en Oracle Sql
Las funciones son programas que toman cero o más argumentos y devuelven un único valor.
Las funciones pueden ser de una sola fila, funciones de varias filas
Discutiremos aquí las funciones de fila única en SQL
¿Qué son las funciones de fila única en Oracle SQL
Las funciones de una sola fila son funciones integradas e incluyen funciones de caracteres, numéricas, de fecha, de conversión y definidas por el usuario.
Todas las funciones de fila única se pueden usar en programas SQL o PL/SQL y se pueden usar en las cláusulas SELECT, WHERE y ORDER BY.
Las funciones de una sola fila incluyen TO_CHAR, TO_DATE, UPPER, LOWER, etc.
Las funciones de una sola fila también se pueden usar en la cláusula SET y en el comando UPDATE. Las funciones de una sola fila no se pueden usar en una cláusula HAVING.
Examinemos las diversas funciones importantes de una sola fila
Funciones de caracteres en SQL
Las funciones de caracteres son:
LOWER('char') :convertir cadena a minúsculas
SQL> select ename from "EMP"; ENAME ---------- Blake Clark Scott SQL> select lower(ename) from "EMP"; LOWER(ENAM ---------- blake clark scott
UPPER('CHAR') :convierte la cadena a mayúsculas
SQL> select upper(ename) from "EMP"; UPPER(ENAM ---------- BLAKE CLARK SCOTT
INITCAP('Char'):devuelve una cadena con la primera letra de cada palabra en mayúsculas
SQL> select initcap(ename) from "EMP"; INITCAP(EN ---------- Blake Clark Scott
CONCAT:la función tiene un límite de dos parámetros.
SQL> select concat(ename,DEPTNO) from emp; CONCAT(ENAME,DEPTNO) -------------------------------------------------- Blake10 Clark10 Scott20 SQL> select concat(ename,empno,DEPTNO) from emp; select concat(ename,empno,DEPTNO) from emp * ERROR at line 1: ORA-00909: invalid number of arguments
LONGITUD:devuelve la longitud de la cadena
SQL> select ename,length(ename) from emp; ENAME LENGTH(ENAME) ---------- ------------- Blake 5 Clark 5 Scott 5
LENGTHB:devuelve la longitud de una cadena en bytes
SQL> select ename,length(ename),lengthb(ename) from emp; ENAME LENGTH(ENAME) LENGTHB(ENAME) ---------- ------------- -------------- Blake 5 5 Clark 5 5 Scott 5 5
INSTR:devuelve el índice de la cadena buscada dentro de una cadena,
SQL> select ename,instr(ename,'A') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 0 Clark 0 Scott 0 SQL> select ename,instr(ename,'a') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 3 Clark 3 Scott 0
LPAD:pad izquierdo una cadena con n caracteres
SQL> select ename,lpad(ename,12) from emp; ENAME LPAD(ENAME,12) ---------- ------------------------------------ Blake Blake Clark Clark Scott Scott SQL> select ename,lpad(ename,12,'-') from emp; ENAME LPAD(ENAME,12,'-') ---------- ------------------------------------ Blake -------Blake Clark -------Clark Scott -------Scott
LTRIM:elimina los caracteres iniciales de una cadena
SQL> select ltrim(' name') from dual; LTRI ---- name SQL> select ltrim(' name ') from dual; LTRIM(' ------- name SQL> select LTRIM('000123', '0') from dual; LTR --- 123 SQL> select LTRIM('1000123', '0') from dual; LTRIM(' ------- 1000123
REEMPLAZAR:realiza una búsqueda de subcadenas y reemplaza
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes -------------- BLACK and BLUE
SUBSTR:devuelve una sección de cadena especificada en valores numéricos
SUBSTRB:igual que SUBSTR solo con bytes
SOUNDEX:devuelve una representación fonética de una cadena
TRANSLATE:realiza una búsqueda y reemplazo de caracteres
TRIM:cadena de caracteres iniciales y finales de la cadena
Examples select emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') from dept; select lower(emp_name) from employee; select upper(first_name) from emp;
Como se explicó, la función de fila única funciona en cada fila
Relacionado: procesamiento de decodificación de Oracle sql
Funciones numéricas en Sql
Las Funciones Numéricas son:
ROUND :redondea un número
SQL> select round(3.456) from dual; ROUND(3.456) ------------ 3 SQL> select round(3.456,2) from dual; ROUND(3.456,2) -------------- 3.46
TRUNC:trunca un número
MOD:devuelve el módulo, es decir, el resto
SQL> select mod(4,2) from dual; MOD(4,2) ---------- 0 SQL> select mod(4,3) from dual; MOD(4,3) ---------- 1
SIGNO:devuelve positivo, negativo o cero
CEIL:devuelve el siguiente número más alto
SQL> select ceil(3.1) from dual; CEIL(3.1) ---------- 4 SQL> select ceil(3) from dual; CEIL(3) ---------- 3
LOG:devuelve el logaritmo
FLOOR:devuelve el siguiente número más pequeño
SQL> select floor(3.1) from dual; FLOOR(3.1) ---------- 3 SQL> select floor(3) from dual; FLOOR(3) ---------- 3
SQRT:devuelve la raíz cuadrada de un número
Examples SELECT SQRT(25) "Square root" FROM DUAL; SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;
Funciones de fecha de Oracle
Las funciones de fecha de Oracle son:
SYSDATE:devuelve la fecha actual
DUAL
MONTHS_BETWEEN (devuelve un número):devuelve el número de mes entre dos fechas
ADD_MONTHS:agrega un número de meses a date
NEXT_DAY :regresa el siguiente día de la semana después de una fecha determinada
LAST_DAY :regresa el último día del mes
DBTIMEZONE:devuelve la zona horaria de la base de datos
TRUNC:trunca una fecha.
CURRENT_TIMESTAMP:devuelve la fecha y la hora en formato TIMESTAMP
Examples SQL> select CURRENT_TIMESTAMP from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 01-SEP-19 04.33.26.493097 PM +00:00 SQL> select sysdate from dual; SYSDATE --------------- 01-SEP-19
Funciones de conversión de tipo explícito
TO_CHAR -convierte número o fecha a VARCHAR2
TO_NUMBER :Convierte carácter a número
TO_DATE:Convierte a fecha
Examples SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2 ; TO_CHAR(SYSDATE,'DD- -------------------- 01-SEP-2019,34
Otras funciones
NVL (expr1, expr2) y NVL3
NVL:toma dos argumentos:NVL(x1, x2), devuelve x2 cuando x1 es NULL o x1 cuando x1 no es NULL. NVL2:toma tres argumentos:NVL2 (x1, x2, x3), devuelve x3 cuando x1 es NULL o x2 cuando x1 no es NULL
DECODE Esta función funciona como una instrucción IF-THEN-ELSE o CASE.
COALESCE:devuelve el primer valor no NULL de una lista
SYS_CONTEXT:devuelve los atributos del sistema
UID:devuelve el ID de usuario numérico para la sesión actual
Pequeño cuestionario para probar el conocimiento sobre funciones de fila única en SQL
Pregunta 1 :está utilizando funciones de una sola fila en una declaración de selección. ¿Qué función se puede categorizar mejor como similar en función a una declaración if-then-else?
A) sqrt( )
B) decodificar( )
C) rowidtochar( )
D) new_time( )
Explicación:
La función decode() actúa como una cláusula if-then-else en sus sentencias SQL. La opción sqrt( ) es incorrecta porque sqrt( ) produce la
raíz cuadrada de un número. La opción new_time( ) es incorrecta porque la función new_time( ) devuelve una nueva hora basada en los valores especificados en la llamada a esa función.
Finalmente, la opción rowidtochar() es incorrecta porque rowidtochar() es una función que convierte la información de ROWID en información de CHAR.
Pregunta 2:
Desea utilizar funciones de una sola fila en sus declaraciones SQL. ¿Cuáles de las siguientes tres son funciones numéricas? (Elija tres de los cuatro.)
A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Explicación:
La única función no numérica en este list es la función to_number(),
que es una operación de conversión.
Pregunta 3 La siguiente instrucción SQL se tomó de una sesión de SQL*Plus:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr(ENAME,1,1)> to_number ('V') y EMPNO> 1000
ordenar por EMPNO desc, ENAME asc;
¿Cuál de las siguientes líneas en la instrucción de selección que se muestra en el
bloque de código anterior contiene un error?
A) seleccione decodificar (EMPNO, 58385, 'INACTIVO', 'ACTIVO') empno
B) de EMP
C) y EMPNO> 02000
D) donde substr(ENAME,1,1 )> to_number('S')
E) ordenar por EMPNO desc, ENAME asc;
Explicación:(D)
Los caracteres que son alfabéticos, como S, no se pueden convertir en números. Cuando se ejecuta esta declaración, producirá un error en esta línea. Las
otras líneas de esta consulta son correctas tal como están compuestas.
Pregunta 4 ¿Qué declaración SELECT obtendrá el resultado 'elloworld' de la cadena 'HelloWorld'?
A. SELECCIONE SUBSTR('HelloWorld',1) FROM dual;
B. SELECCIONE INITCAP(TRIM ('HelloWorld', 1,1)) FROM dual;
C. SELECCIONE 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;
Respuesta:E
Espero que les guste esta publicación sobre funciones de una sola fila en SQL. Proporcione sus comentarios
Artículos relacionados
Funciones analíticas en Oracle:las funciones de Oracle Analytic calculan un valor agregado basado en un grupo de filas mediante el uso de la partición por cláusula de Oracle, difieren de las funciones agregadas
rango en Oracle:RANK, DENSE_RANK y ROW_NUMBER son analíticos de Oracle función que se utilizan para clasificar filas en el grupo de filas llamado ventana
Función principal en Oracle:consulte la función LAG en Oracle y la función principal en Oracle, cómo usarlas en consultas analíticas y cómo funciona en Oracle sql
Consultas Top-N en Oracle:Consulte esta página para explorar las diversas formas de lograr Consultas Top-N en Oracle y Paginación en Oracle Query Oracle Database.