Академический Документы
Профессиональный Документы
Культура Документы
OBJETIVOS
FIS
Describir los distintos tipos de funciones de conversin que estn disponibles en SQL Server.
Utilice las funciones de conversin TO_CHAR, TO_NUMBER, y TO_DATE.
Aplicar las expresiones condicionales en una sentencia SELECT.
Esta leccin se centra en las funciones que convierten los datos de un tipo a otro (por ejemplo, la
conversin de datos de carcter a los datos numricos) y se discuten las expresiones
condicionales en las instrucciones SQL SELECT.
FUNCIONES DE CONVERSIN
Conversion de Tipo
de Datos
Adems de los tipos de datos Oracle, las columnas de las tablas de una base de datos de
Oracle se puede definir mediante el uso de la American National Standards Institute
(ANSI), DB2 y SQL / DS tipos de datos. Sin embargo, el servidor de Oracle convierte
internamente estos tipos de datos de tipos de datos Oracle.
En algunos casos, el servidor de Oracle recibe datos de un tipo de datos donde se espera
que los datos de un tipo de datos diferente. Cuando esto sucede, el servidor de Oracle
puede convertir automticamente los datos al tipo de datos esperado. Esta conversin de
tipo de datos puede hacerse implcitamente por el servidor de Oracle o explcitamente por
el usuario.
FIS
datos es el tipo de entrada de datos y el segundo tipo de datos es la salida.
Desde A
VARCHAR2 o CHAR NMERO
VARCHAR2 o CHAR FECHA (DATE
Desde A
NMERO VARCHAR2 o CHAR
FECHA (DATE) VARCHAR2 o CHAR
Nota: CHAR para conversiones de nmeros slo tendr xito si la cadena de caracteres
representa un nmero vlido.
FIS
TO_CHAR TO_CHAR
SQL Server proporciona tres funciones para convertir un valor de un tipo de datos a otro:
Funcin Propsito
TO_CHAR (nmero | fecha, [ fmt ], Convierte un nmero o valor de fecha en una
[nlsparams]) cadena de caracteres VARCHAR2 con el modelo
de formato fmt
Nmero de la conversin: El parmetro
nlsparams especifica los siguientes caracteres,
que son devueltos por los elementos de formato
de nmeros:
- Carcter decimal
- Grupo de separacin
- Smbolo de la moneda local
- Smbolo de moneda internacional
Nota: La lista de funciones que se mencionan en esta leccin incluye slo algunas de las
funciones de conversin disponibles.
FIS
USO DE LA FUNCIN TO_CHAR CON FECHAS
TO_CHAR(date, 'format_model')
El modelo de formato:
Directrices
El modelo de formato debe estar encerrado entre comillas simples y distingue entre
maysculas y minsculas.
El modelo de formato puede incluir cualquier elemento de formato de fecha vlido.
Pero asegrese de separar el valor de la fecha de la modelo de formato con una
coma.
Los nombres de los das y meses en la salida son automticamente rellena con
espacios en blanco.
Para eliminar los espacios en blanco con relleno o suprimir ceros a la izquierda, utilice
el modo de relleno elemento de FM.
Elemento Result
YYYY Ao completo en cifras
YEAR Ao enunciado (en Ingls)
MM Valor de dos dgitos para el mes
MONTH Nombre completo del mes del mes
MON Abreviatura de tres letras del mes
DY Abreviatura de tres letras del da de la semana
DAY Nombre del da completo del da de la semana
DD Da numrico del mes
Elemento Descripcin
SCC o CC Siglo; Prefijo de Servidor con fecha A.C.
Aos en fechas Ao, Prefijo de Servidor con fecha B.C.
YYYY o SYYYY
YYY o YY o Y ltimos tres, dos, o un dgito del ao
Y, YYY Ao con una coma en esta posicin
IYYY, IYY, IY, I Cuatro, tres, dos o un digito del ao basada en el estndar ISO
SYEAR o AO Ao enunciado; Prefijo de Servidor con fecha A.C.
AC o DC Indica aos A.C. o D.C.
A.C. o D.C. Indica periodos A.C. o D.C.
Q Trimestre del ao
MM Mes: Valor de dos dgitos
MONTH Nombre del mes rellenado con espacios en blanco para una
longitud de nueve caracteres
MON Nombre del mes, abreviatura de tres letras
RM Nmero romano del Mes
WW o W Semana del ao o del mes
DDD o DD o D Da del ao, mes o semana
DAY Nombre del da rellenado con espacios en blanco para una
longitud de nueve caracteres
DY Nombre del da, abreviatura de tres letras
J Da Juliano, el nmero de das desde el 31 de diciembre de
4713 A.C.
IW Semanas en el ao a partir de la norma ISO (de 1 a 53)
FIS
HH24: MI: SS AM PM 15:45:32
Utilice los formatos que se muestran en las tablas siguientes para mostrar la informacin
del tiempo y literales, y para cambiar los nmeros a los nmeros escritas.
Elemento Descripcin
AM o PM Indicador Meridiano
A.M. o P.M. Indicador Meridiano con perodos
HH o HH12 o HH24 Hora del da, o la hora (1-12), o la hora (0-23)
MI Minutos (0-59)
SS Segundos (0-59)
SSSSS Segundos pasada la medianoche (0-86399)
Otros Formatos
Elemento Descripcin
/., Puntuacin se reproduce en el resultado
"De la" Cadena entrecomillada se reproduce en el resultado.
SELECT last_name,
TO_CHAR (hire_date, 'fmDD Month YYYY')
AS HIREDATE
FROM employees;
FIS
La sentencia SQL de la diapositiva muestra los apellidos y las fechas de contratacin para
todos los empleados. La fecha de contratacin aparece como el 17 junio de 2003.
Ejemplo:
Modificar el ejemplo de la diapositiva para mostrar las fechas en un formato que aparece
como "Decimosptima de junio de 2003 12:00:00 AM".
SELECT last_name,
TO_CHAR(hire_date,
'fmDdspth "of" Month YYYY fmHH:MI:SS AM')
HIREDATE
FROM employees;
FIS
Tenga en cuenta que el mes sigue el modelo de formato que se especifica, en otras
palabras, la primera letra se escribe con mayscula y el resto en minsculas.
TO_CHAR(number, 'format_model')
Estos son algunos de los elementos de formato que se pueden utilizar con la funcin
TO_CHAR para mostrar un valor numrico como un caracter:
Elemento Resultado
9 Representa un nmero
0 Fuerzas un cero que se mostrar
$ Coloca un signo de dlar flotante
L Utiliza el smbolo flotante de la moneda local
. Imprime un punto decimal
, Imprime una coma como un indicador de miles
Si est convirtiendo un nmero para el tipo de datos de carcter, puede utilizar los
elementos de formato:
FIS
especificada. Puede especificar los separadores
de varios grupos en un modelo de formato de
nmero.
, Coma en la posicin especificada 999,999 1,234
MI Signos menos a la derecha (valores negativos) 999999MI 1234 -
PR Parntesis a los nmeros negativos 999999PR <1234>
EEEE Notacin cientfica (formato debe especificar los 99.999EEEE 1.234E+03
cuatro elementos)
U Regresa en la posicin especificada de los U9999 1234
"Euro" (u otra) en moneda de doble
V Multiplicar por 10 V n veces (n = nmero de 9s 9999V99 123400
despus de V)
S Devuelve el valor negativo o positivo S9999 -1234 o
1234
B Mostrar valores cero como en blanco, no es 0 B9999.99 1234,00
FIS
TO_DATE (char [, 'format_model'])
Es posible que desee convertir una cadena de caracteres a un nmero o una fecha. Para
realizar esta tarea, utilice funciones TO_NUMBER o TO_DATE. El modelo de formato que
elija se basa en los elementos de formato demostrado previamente.
Ejemplo:
Mostrar el nombre y la fecha de contratacin para todos los empleados que comenzaron
el 21 de mayo de 2007. Hay dos espacios despus del mes de mayo y antes de que el
nmero 21 en el siguiente ejemplo. Debido a que el modificador de FX se utiliza, una
coincidencia exacta que se requiere y los espacios despus de la palabra que no se
reconocen:
Para encontrar a los empleados contratados antes de 2006, utilice el formato de fecha
RR, que produce los mismos resultados que si el comando se ejecuta en 1999 o ahora:
FUNCIONES DE ANIDACIN
Paso 1 = Resultado 1
Paso 2 = Resultado 2
FIS
Paso 3 = Resultado 3
SELECT last_name,
UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US'))
FROM employees
WHERE department_id = 60;
El ejemplo de la diapositiva muestra los apellidos de los empleados del departamento 60.
La evaluacin de la instruccin SQL consta de tres pasos:
Ejemplo:
Muestra la fecha del prximo viernes que es de seis meses a partir de la fecha de
contratacin. La fecha resultante debe aparecer como Viernes, 13 de Julio 2001. Ordenar
los resultados por fecha de contratacin.
FIS
SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS (hire_date, 6), 'VIERNES'),
'fmDay, Month ddth, YYYY')
"Next 6 Month Review"
FROM employees
ORDER BY hire_date;
En primer lugar, la funcin ROUND interna se ejecuta para redondear el valor del salario
dividido por 7 a dos decimales. La funcin TO_CHAR se utiliza para dar formato al
resultado de la funcin ROUND.
FUNCIONES GENERALES
Las siguientes funciones trabajan con cualquier tipo de datos, que pertenecen a valores
nulos:
Estas funciones trabajan con cualquier tipo de datos y se relacionan con el uso de valores
nulos en la lista de expresiones.
Funcion
NVL
Descripcin
Convierte un valor nulo a un valor real
NVL2 Si expr1 no es nulo, NVL2 devuelve expr2. Si expr1 es nulo, NVL2
devuelve expr3. El argumento expr1 puede tener cualquier tipo de datos.
NULLIF Compara dos expresiones y devuelve null si son iguales, devuelve la
primera expresin si no son iguales
COALESCE Devuelve el primer no-nula expresin en la lista de expresiones
FIS
Release 1 (11.1).
FUNCIN NVL
Los tipos de datos que se pueden utilizar son la fecha, el carcter, y el nmero.
Los tipos de datos deben coincidir:
- NVL (COMMISSION_PCT, 0)
- NVL (hire_date, '01-ENE-06 ')
- NVL (job_id: "No trabajo todava")
Sintaxis
NVL (expr1, expr2)
En la siguiente sintaxis:
expr1 es el valor de origen o una expresin que puede contener un valor nulo
expr2 es el valor objetivo para la conversin de la hiptesis nula
Usted puede utilizar la funcin NVL para convertir cualquier tipo de datos, pero el valor
devuelto siempre es el mismo que el tipo de datos de expr1.
Tenga en cuenta que la compensacin anual se calcula slo para aquellos empleados
que ganan una comisin.
Si algn valor de la columna en una expresin es nulo, el resultado es nulo. Para calcular
los valores de todos los empleados, debe convertir el valor nulo a un nmero antes de
aplicar el operador aritmtico. En el ejemplo de la diapositiva, la funcin NVL se utiliza
para convertir los valores nulos a cero
FIS
NVL2 (commission_pct,
'SAL+COMM', 'SAL') income
FROM employees WHERE department_id IN (50, 80);
Sintaxis
En la siguiente sintaxis:
expr1 es el valor de origen o una expresin que puede contener un valor nulo
expr2 es el valor que se devuelve si expr1 no es NULL
expr3 es el valor que se devuelve si expr1 es nulo
FIS
FROM employees;
Sintaxis
En la siguiente sintaxis:
NULLIF compara expr1 y expr2. Si son iguales, la funcin devuelve un valor nulo. Si
no es as, la funcin devuelve expr1. Sin embargo, no se puede especificar el literal
NULL para expr1.
FIS
COALESCE puede tomar varios valores alternativos.
Si la primera expresin no es nulo, el COALESCE devuelve la funcin que la de
expresin, de lo contrario, hace un COALESCE de las expresiones restantes.
Sintaxis
En la siguiente sintaxis:
Ntese que todas las expresiones deben ser del mismo tipo de datos.
Ejemplo:
FIS
Para los empleados que no reciben ningn tipo de comisin, su organizacin quiere dar
un aumento salarial de $ 2.000 y para los empleados que reciben comisin, la consulta
debe calcular el nuevo salario que es igual al salario existente agrega a la cantidad de la
comisin.
Nota: Examine el resultado. Para los empleados que no reciben ningn tipo de comisin,
la columna Salario Nueva muestra el salario se incrementa en $ 2.000 y para los
empleados que reciben comisin, la columna Salario Nueva muestra el importe de la
comisin calculada aadido al salario.
EXPRESIONES CONDICIONALES
Los dos mtodos que se utilizan para implementar el procesamiento condicional (IF-
THEN-ELSE lgica) en una sentencia SQL son la expresin CASE y la funcin DECODE.
Nota: La expresin CASE cumple con la norma ANSI SQL. La funcin DECODE es
especfico a la sintaxis de Oracle.
EXPRESIN CASE
FIS
Facilita las consultas condicionales de hacer el trabajo de una instruccin IF-THEN-ELSE:
Expresiones CASE permiten utilizar la lgica IF-THEN-ELSE en sentencias SQL sin tener
que invocar los procedimientos.
En una expresin CASE simple, el servidor de Oracle busca el primer par WHEN... THEN
para que expr es igual a comparison_expr y devuelva return_expr. Si ninguno de los pares
WHEN... THEN cumplen con esta condicin, y si existe una clusula ELSE, el servidor
Oracle devuelve else_expr. De lo contrario, el servidor de Oracle devuelve un valor nulo.
No se puede especificar el literal NULL para todos los return_exprs y la else_expr.
Las expresiones expr y comparison_expr deben ser del mismo tipo de datos, que puede
ser CHAR, VARCHAR2, NCHAR o NVARCHAR2. Todos los valores de retorno
(return_expr) deben ser del mismo tipo de datos.
SELECT last_name,salary,
(CASE WHEN salary<5000 THEN 'Low'
WHEN salary<10000 THEN 'Medium'
WHEN salary<20000 THEN 'Good'
ELSE 'Excellent'
END) qualified_salary
FROM employees;
FIS
FUNCIN DECODE
Facilita las consultas condicionales de hacer el trabajo de una expresin CASE o una
instruccin IF-THEN-ELSE:
La funcin DECODE descifra una expresin de una manera similar a la lgica IF-THEN-
ELSE que se utiliza en varios idiomas. La expresin de la funcin DECODE descifra
despus de comparar a cada valor de bsqueda. Si la expresin es la misma que la
bsqueda, se devuelve como resultado.
La misma afirmacin puede ser expresado en pseudocdigo como una instruccin IF-
THEN-ELSE:
FROM employees
0.45) TAX_RATE
EXAMEN
Tasa de Impuesto
00%
09%
20%
30%
40%
42%
44%
45%
1. Verdadero
2. Falso
Respuesta: 2
RESUMEN
FIS
Recuerde lo siguiente:
Funciones de conversin puede convertir el carcter, la fecha, y los valores
numricos: TO_CHAR, TO_DATE, TO_NUMBER
Hay varias funciones que pertenecen a los nulos, incluyendo NVL, NVL2, NULLIF y
COALESCE.
La lgica IF-THEN-ELSE se puede aplicar dentro de una instruccin SQL mediante la
expresin CASE o la funcin DECODE.
PRCTICA 4: INTRODUCCIN
PRCTICA 4
FIS
4. Crear una consulta que muestra los apellidos (last_name) de los empleados y las
cantidades ltimos de comisin (commission amount). Si un empleado no gana
comisin, mostrar "No Comisin." Etiqueta la columna COMM.
FIS
Si tiene tiempo, siga los siguientes ejercicios:
5. Uso de la funcin DECODE, escriba una consulta que muestra el grado de todos
los empleados basndose en el valor de la JOB_ID columna, utilizando los
siguientes datos:
Trabajo Grado
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
Ninguna de las anteriores 0