- Presentación
- Funciones SQL
- Expresión escalar
- IZQUIERDA
- DERECHO
- MID, SUBSTR y SUBSTRING
- MID
- SUBSTR
- BTRIM
- LTRIM
- RTRIM
- TRIM
- OVERLAY
- SUSTITUIR
- TRADUCIR
- CONCAT
- GROUP_CONCAT
- STRING_AGG
- LPAD
- RPAD
- LOWER
- SUPERIOR
- LONGITUD/LONGITUD
- LEN
- LONGITUD
- INSTR
- PATINDEX
- POSICIÓN
- CUENTA
- AVG
- MÁX
- MÍN
- SUMA
- CADA
- ARRIBA
- FONDO
- LÍMITE
- ASCII
- UNICODE
- USUARIO_ACTUAL
- SYSTEM_USER
- NOMBRE_DE_USUARIO
- SOUNDEX, SUENA COMO
- SOUNDEX2, SONIDO2 COMO
- ADD_MONTHS
- ÚLTIMO DÍA
- DÍA
- DAYOFMONTH
- DAYOFWEEK
- DAYOFYEAR
- MES DE MES
- AÑO y MES
- FECHA_ACTUAL
- GETDATE
- ES UNA BUENA IDEA.
- DATEADD
- DATEDIFF y DATEDIFF_BIG
- DATEPART
- FECHA DE LAS PARTES
- DATEFROMPARTS
- MESES_ENTRE
- NEW_TIME
- PRÓXIMO_DÍA
- RONDA
- SYSDATE
- TRUNC
- ISDATE
- COALESCE
- NVL, IFNULL, ISNULL
- NULLIF
- DECODE
- MAY/MIN
- PARTIDO CONTRA
- Operadores y funciones Bitwise
- ES JSON XXX
- JSON_VALOR
- JSON_CUESTA
- JSON_EXISTE
- JSON_OBJETO
- JSON_OBJECTAGG
- JSON_ARRAY
- JSON_ARRAYAGG
Funciones SQL que pueden utilizarse en las consultas SQL
Las siguientes funciones SQL pueden utilizarse en las consultas escritas en código SQL (clasificadas por tema): | | | | | | | | | | | | | | - cambiar el caso de una cadena:
| | | - LENy LONGITUD
- CHARACTER_LENGTH, CHAR_LENGTH y BYTE_LENGTH
| | | - número de registros en un archivo:
| | - calcular valores numéricos:
| Consulte la funciones matemáticas SQL. | - seleccionar los primeros o los últimos n registros n registros:
| | | | | | | | | | | | | | - "Búsqueda de"texto completo
| | | | | | - Funciones y operadores Bitwise
| | | |
Para más detalles sobre las funciones SQL, consulte la documentación específica de SQL. Observaciones: - Estas instrucciones se pueden utilizar:
- en el código SQL de las consultas creadas en el editor de consultas. Estas consultas se ejecutan con la función HExecuteQuery.
- en el código SQL de las consultas ejecutadas con la función de WLanguage HExecuteSQLQuery.
- A menos que se indique lo contrario, estas funciones pueden utilizarse con todos los tipos de fuentes de datos (Oracle, Access, SQL Server, etc.).
Expresión escalar Cada parámetro pasado a una de estas funciones SQL corresponde a una expresión (llamada "expresión escalar"). Una expresión puede corresponder a: - a constant: cadena de caracteres, entero, real, carácter, ... Por ejemplo: 125, 'A', 'Doe'.
- un nombre de artículo.
- los resultado de otra función SQL.
- a cálculo en una expresión. Por ejemplo: "MyItem1+LEN(MyItem2)+1"
ELT ELT devuelve la enésima cadena de caracteres encontrada en una lista de cadenas.Formato de uso: ELT(String Number, String1, String2, String3, ...) Ejemplo: El siguiente código SQL se utiliza para seleccionar la primera cadena de la lista: SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo') EXTRACTVALUE EXTRACTVALUE se utiliza para cadenas manipular XML. Esta función devuelve el texto (CDATA) del primer nodo de texto que es hijo del elemento correspondiente a la expresión XPATH. Si se encuentran varias correspondencias, el contenido del primer nodo de texto hijo de cada nodo correspondiente a la expresión XPATH se devuelve en el formato de una cadena delimitada por caracteres de espacio. Formato de uso: EXTRACTVALUE(XML fragment, XPATH expression) <Fragmento XML> debe ser un fragmento XML válido. Debe contener una raíz única. Ejemplo: El siguiente código se utiliza para contar los elementos encontrados: SELECT ExtractValue('<a><b/></a>', 'count(/a/b)')
FROM CUSTOMER
WHERE CUUNIKKEY=1 IZQUIERDA LEFT extrae la parte izquierda (es decir, los primeros caracteres) de una expresión.
Formato de uso: LEFT(Initial expression, Number of characters to extract) Ejemplo: El siguiente código SQL se utiliza para listar los estados de los clientes: SELECT LEFT(ZipCode, 2)
FROM CUSTOMER DERECHO RIGHT extrae la parte derecha (es decir, los últimos caracteres) de una expresión. Formato de uso: RIGHT(Initial expression, Number of characters to extract) Ejemplo: El siguiente código SQL se utiliza para extraer los últimos cinco caracteres del nombre de los clientes: SELECT RIGHT(Name, 5)
FROM CUSTOMER MID, SUBSTR y SUBSTRING MID, SUBSTR y SUBSTRING se utilizan para extraer una subcadena encontrada en el contenido de una expresión a partir de una posición determinada. Si la posición dada corresponde a: - un número negativo, la extracción comenzará desde el final de la cadena.
- 0, la extracción comenzará desde el principio de la cadena (equivalente a la posición 1).
Si el valor absoluto de la posición dada (devuelto por ABS) es mayor que el número de caracteres encontrados en la expresión inicial, se devuelve una cadena vacía. Ejemplo: El siguiente código SQL se utiliza para extraer las ciudades cuyo segundo carácter es'A': SELECT
ZIPCODES.IDCedex AS IDCedex,
ZIPCODES.ZipCode AS ZipCode,
ZIPCODES.City AS City,
SUBSTR(ZIPCODES.City, 2, 1) AS Expression1
FROM
ZIPCODES
WHERE
SUBSTR(ZIPCODES.City, 2, 1) = 'A' MID MID sólo puede utilizarse en una fuente de datos Access. Formato de uso: MID(Initial expression, Start position, Number of characters to extract) Ejemplo: El siguiente código SQL se utiliza para extraer los caracteres 3 y 4 del nombre de los clientes: SELECT MID(Name, 3, 2)
FROM CUSTOMER SUBSTR SUBSTR sólo puede utilizarse en una fuente de datos Oracle, HFSQL Classic o HFSQL Client/Server. Formato de uso: SUBSTR(Initial expression, Start position, Number of characters to extract) Ejemplo: El siguiente código SQL se utiliza para extraer los caracteres 3 y 4 del nombre de los clientes: SELECT SUBSTR(Name, 3, 2)
FROM CUSTOMER SPLIT_PART SPLIT_PART divide una cadena de caracteres según el separador especificado y devuelve la enésima parte de la cadena.Formato de uso: SPLIT_PART(Initial Expression, Delimiter, Number of the Part to Extract) Ejemplo: El siguiente código SQL se utiliza para extraer las 3 primeras palabras correspondientes a la Address: SELECT split_part(ADDRESS,' ',1), split_part(ADDRESS,' ',2),split_part(ADDRESS,' ',3)
FROM CUSTOMER
WHERE CUUNIKKEY=2 BTRIM BTRIM borra una cadena de caracteres que se encuentra al principio o al final de una cadena. Formato de uso: BTRIM(<Source string>, [<String to delete>]) Ejemplo: Borre la cadena "AB" de la cadena "ABRACADABRA". BTRIM('ABRACADABRA','AB') En este ejemplo, el resultado es 'RCDR'. LTRIM LTRIM devuelve una cadena de caracteres: - sin caracteres de espacio a la izquierda.
- sin una lista de personajes.
Los caracteres se borran de izquierda a derecha. Esta eliminación distingue entre mayúsculas y minúsculas (en minúsculas / mayúsculas). Esta eliminación se detiene cuando se encuentra un carácter que no pertenece a la lista especificada. Las eliminaciones de caracteres específicos no se pueden realizar en una fuente de datos Access o SQL Server. Formato de uso: -- Deleting the space characters found on the left LTRIM(Initial expression) -- Deleting a list of characters LTRIM(Initial expression, Characters to delete) Ejemplo: El nombre de los clientes está precedido por el título de los clientes ("Sr.", "Sra." o "Sra.").. El siguiente código SQL se utiliza para: - eliminar el título de cada nombre (las letras "M", "r" y "s", así como el carácter de punto).
- eliminar el carácter de espacio que se encuentra delante del nombre (carácter de espacio que se encontraba entre el título y el nombre).
SELECT LTRIM(Name, 'Ms.')
FROM CUSTOMER
SELECT LTRIM(Name)
FROM CUSTOMER
En este ejemplo: | | Si el nombre del cliente es: | La cadena devuelta es: |
---|
'Srta. DOE | "DOE | 'Sr. "CLARK | CLARK. | 'La señora. Davis | Davis". |
RTRIM RTRIM devuelve una cadena de caracteres: - sin espacios a la derecha.
- sin una lista de personajes.
Los caracteres se borran de derecha a izquierda. Esta eliminación distingue entre mayúsculas y minúsculas (en minúsculas / mayúsculas). Esta eliminación se detiene cuando se encuentra un carácter que no pertenece a la lista especificada. Las eliminaciones de caracteres específicos no se pueden realizar en una fuente de datos Access o SQL Server. Formato de uso: -- Deleting the space characters found on the right RTRIM(Initial expression) -- Deleting a list of characters RTRIM(Initial expression, Characters to delete) Ejemplo: El siguiente código SQL se utiliza para borrar los caracteres "E", "U" y "R" que se encuentran a la derecha de los nombres de los clientes: SELECT RTRIM(Name, 'EUR')
FROM CUSTOMER En este ejemplo: | | Si el nombre del cliente es: | La cadena devuelta es: |
---|
DUVALEUR". | DUVAL''. | DRAFUREUR" (DIBUJANTE) | DRAF. | Galteur | Galteur | "FOURMALTE | "FOURMALTE | BENUR. | BEN |
TRIM MIC devuelve una cadena de caracteres: - sin espacios a la izquierda y a la derecha.
- sin una cadena de caracteres que se encuentre al principio y al final de la cadena.
- sin una cadena de caracteres que se encuentre al principio de la cadena.
- sin una cadena de caracteres que se encuentra al final de la cadena.
Los caracteres se borran de derecha a izquierda. Esta eliminación distingue entre mayúsculas y minúsculas (en minúsculas / mayúsculas). Esta eliminación se detiene cuando se encuentra un carácter que no pertenece al string especificado. Formato de uso: -- Deleting the space characters on the right ant on the left TRIM(Initial expression) -- Deleting a character string found at the beginning or at the end of a string TRIM(Initial expression, String to delete) -- OR TRIM(BOTH String to delete FROM Initial expression) -- Deleting a character string found at the beginning of a string TRIM(LEADING String to delete FROM Initial expression) -- Deleting a character string found at the end of a string TRIM(TRAILING String to delete FROM Initial expression) OVERLAY OVERLAY sustituye una cadena por otra. Formato de uso: OVERLAY(<Source string> PLACING <String to replace> FROM <Start position> [FOR <Length>]) Ejemplo: Se utiliza el siguiente código SQL para sustituir "Verde" por "Rojo".: SELECT OVERLAY('Green apple' PLACING 'Red' FROM 7) FROM Product SUSTITUIR REEMPLAZAR devuelve una cadena de caracteres: - reemplazando todas las ocurrencias de una palabra encontrada en una cadena por otra palabra.
- sustituyendo todas las apariciones de una palabra encontrada en una cadena.
La sustitución se realiza de derecha a izquierda. Este reemplazo distingue entre mayúsculas y minúsculas (mayúsculas / minúsculas). Esta sustitución se detiene cuando se encuentra un carácter que no pertenece a la cadena especificada. Formato de uso: -- Replacing all the occurrences of a word by another word REPLACE(Initial expression, String to replace, New string) -- Deleting all the occurrences of a word REPLACE(Initial expression, String to delete) REVERSE RETROCESO devuelve un string en el que el orden de los caracteres es el orden inverso del string inicial. Formato de uso: TRADUCIR TRADUCIR devuelve una cadena de caracteres reemplazando todos los caracteres especificados por otros caracteres. Si un carácter a reemplazar no tiene un carácter correspondiente, este carácter se elimina. La sustitución se realiza de derecha a izquierda. Este reemplazo distingue entre mayúsculas y minúsculas (mayúsculas / minúsculas). Formato de uso: -- Replace characters TRANSLATE(Initial expression, Characters to replace, New characters) Ejemplo: Se utiliza el siguiente código SQL para reemplazar: - el carácter "é" por el carácter "e".
- el carácter "è" por el carácter "e".
- el carácter "a" por el carácter "a".
- el carácter "ù" por el carácter "u".
SELECT TRANSLATE(MyControl, 'éèàù', 'eeau')
FROM MyTable CONCAT CONCAT concatena varias cadenas. Formato de uso: CONCAT(String 1, String 2 [,..., String N]) GROUP_CONCAT GROUP_CONCAT concatena los valores no nulos de un elemento de una serie de registros en una cadena. Cada valor puede separarse utilizando un separador específico (espacios, ";", etc.). Esta función permite agrupar los resultados en una Line. Si se utiliza la sentencia GROUP BY, los distintos valores pueden agruparse por un criterio diferente. Formato de uso: GROUP_CONCAT(<Column name> SEPARATOR <Separator>) donde: - <Nombre de columna> representa el elemento que contiene los valores a agrupar.
- <Separador> representa el carácter que separa cada valor.
Ejemplo: El siguiente código SQL obtiene la lista de días de la semana y días del fin de semana, cada uno en una Line. Los días van separados por punto y coma. El "DÍA DE LA SEMANA" que maneja tabla es el siguiente: | | Tipo de día | NombreDía |
---|
Entre semana | lunes | Entre semana | martes | Entre semana | miércoles | Entre semana | jueves | Entre semana | viernes | Fin de semana | sábado | Fin de semana | domingo |
SELECT DayType, GROUP_CONCAT(DayName SEPARATOR ';')
FROM DAYOFWEEK
GROUP BY DayType El resultado se mostrará de la siguiente manera: 'Weekday', 'Monday;Tuesday;Wednesday;Thrusday;Friday' 'Weekend', 'Saturday;Sunday' STRING_AGG STRING_AGG se usa para concatenar cadenas no nulas de una lista de valores. Formato de uso: STRING_AGG(string, separator) Ejemplo: El siguiente código devuelve en una sola cadena la lista de modos de entrega separados por ";". SELECT string_agg(ltext,';') AS str FROM delivery Contenido del fichero de entrega: - Empresa de transporte
- Entrega urgente
- Certificado
- captar
Resultado devuelto por la función STRING_AGG: "Empresa de transporte;Entrega urgente;Certificado;Recogida". LPAD LPAD devuelve una cadena cuyo tamaño está definido. Para alcanzar el tamaño solicitado, la cadena se rellena a la izquierda: - por caracteres de espacio.
- por un carácter o por una cadena determinada.
Formato de uso: -- Completion with space characters LPAD(Initial expression, Length) -- Completion with a character LPAD(Initial expression, Length, Character) -- Completion with a character string LPAD(Initial expression, Length, Character string) REPEAT REPEAT devuelve una cadena de caracteres que contiene n veces el repetition de la cadena inicial. - Si n es menor o igual que 0, la función devuelve una cadena vacía.
- Si la cadena inicial o n es NULL, la función devuelve NULL.
Formato de uso: REPEAT(Initial String, n) Ejemplo: El siguiente código se utiliza para repetir el nombre de la Contact 3 veces: SELECT REPEAT(CONTACTNAME,14)
FROM CUSTOMER
WHERE CUUNIKKEY=10 RPAD RPAD devuelve una cadena cuyo tamaño está definido. Para alcanzar el tamaño solicitado, la cadena se rellena a la derecha: - por caracteres de espacio.
- por un carácter o por una cadena determinada.
Formato de uso: -- Completion with space characters RPAD(Initial expression, Length) -- Completion with a character RPAD(Initial expression, Length, Character) -- Completion with a character string RPAD(Initial expression, Length, Character string) ESPACIO ESPACIO devuelve una cadena que contiene caracteres en espacio N.
Formato de uso: TO_CHAR TO_CHAR se utiliza para convertir en cadena de caracteres: - una hora de cita,
- un valor numérico.
Formato de uso: 1. Convertir un valor de fecha: TO_CHAR(<DateTime value>, <DataTime format> [, <DateTime options>]) En esta sintaxis: - <FechaFormato> puede corresponder a uno de los siguientes elementos:
- "-", "/", ",", ".", ";", ":"
- "text": caracteres de puntuación (separadores) para una fecha y/o una hora.
- AD, A.D..: Indicador de la era de AD para una fecha (Después de Jesucristo)
- AM, A.M..: Indicador de meridiano AM para el tiempo (Meridiano Ante)
- BC, B.C.: Indicador de la era BC para una fecha (Antes de Jesucristo)
- Siglo CC o SCC:
- Si los dos últimos dígitos del siglo sobre 4 dígitos están incluidos entre 01 y 99 (inclusive), el siglo está representado por los dos últimos dígitos del año.
- Si los dos últimos dígitos del siglo sobre 4 dígitos son 00, el siglo está representado por los dos primeros dígitos del año..
Por ejemplo, la declaración de 2002 02 ; la declaración de 2000 20.
- D: Número del día de la semana (1-7).
- DÍA: Día en letras.
- DD: Número del día del mes (1-31).
- DDD: Número del día del año (1-366).
- DY: Día abreviado en letras
- FF [1..9]: Fracciones de segundos. El dígito representa el número de dígitos que representan la fracción de segundo. Ejemplos:
- HH:MI:SS.FF''.
- SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') desde dual;
- FM: Elimina los espacios a la derecha y a la izquierda.
- HH: hora del día (1-12).
- HH12: hora del día (1-12).
- HH24: hora del día (0-23).
- IW: Número de la semana del año (1-52 o 1-53) según la norma ISO.
- IYY, IY, IY, I: representa los últimos 3, 2 ó 1 dígitos del año en formato ISO.
- AIAA: representa los 4 dígitos del año.
- D: Día en el Julian Calendar. El número de días desde el 1 de enero de 4712 a.C.
- MI: Actas (0-59).
- MM: Mes (01-12; enero = 01).
- LUN: Mes abreviado.
- MES: Mes completo en cartas.
- PM, P.M.: Indicador de meridiano de PM para el tiempo (Meridiano de Post).
- Q: Trimestre (1, 2, 3, 4; enero - marzo = 1).
- RM: Mes en números romanos (I-XII; enero = I).
- SS: Segundos (0-59).
- SLVS: Número de segundos transcurridos desde medianoche (0-86399).
- WW: Número de la semana (1-53) con la semana 1 a partir del primer día del año.
- W: Número de la semana del mes (1-5) con la semana 1 a partir del primer día del mes.
- X: Separador para la fracción de segundos. Ejemplo:'HH:MI:SSXFF'.
- Y,YYYY: Año con coma. La coma se usa para separar la agrupación de lo local.
- AÑO, AÑO: El año S significa BC, Año firmado con signo menos.
- YYYYY, SYYYYY: Año en 4 dígitos; S significa BC, Año firmado con signo menos.
- AAAA, AA, AA, AA: Último número del año 3, 2 ó 1 número.
- El parámetro <Opciones fecha/hora> es una cadena de caracteres que contiene las siguientes palabras clave:
- "NLS_DATE_LANGUAGE=idioma en es"
- "NLS_NUMERIC_CHARACTERS ='dg'": dg' es una cadena de 2 caracteres cuyo primero corresponde al separador decimal y el segundo al separador de grupo (entre mil y cien, por ejemplo)..
Ejemplo: NLS_DATE_LANGUAGE=french, NLS_NUMERIC_CHARACTERS =,
2. Convertir un valor numérico: TO_CHAR(<Numeric value>, <Numeric format> [, <Numeric options>]) - El parámetro <Formato numérico> puede corresponder a uno de los siguientes elementos:
- , (coma). Posicionar una coma en la ubicación especificada. Ejemplo: 9,999
- . (punto). Posicionar un punto en la ubicación especificada. Ejemplo: 99.99
- 0. Rellena con ceros antes o después. Ejemplo: 0999 ó 9990
- 9. Representa dígitos. Ejemplo: 9999
- B. Sustituye ceros por espacios. Ejemplo: B9999
- C. Posicione el símbolo de moneda según el estándar ISO cuando se utiliza el parámetro NLS_ISO_CURRENCY.. Ejemplo: C999
- D. Indica la posición del separador decimal cuando se utiliza el parámetro NLS_NUMERIC_CHARACTER.. El (.) es el separador de Default. Ejemplo: 99D99
- EEEE. Devuelve un valor en formato científico. Ejemplo: 9.9EEEEEE
- G. Indica el separador de miles cuando se utiliza el parámetro NLS_NUMERIC_CHARACTER. Puede especificar varios miles de separadores. Ejemplo: 9G999
- L. Indica la posición del símbolo de moneda cuando se utiliza el parámetro NLS_ISO_CURRENCY.. Ejemplo: L999
- MI. Coloca el signo - después de valores negativos. Ejemplo: 9999MI
- PR. Encierra los valores negativos entre corchetes angulares. Ejemplo: 9999PR
- rn o RN. Devuelve el valor en mayúsculas o minúsculas.
- S. Indica el signo +/- Positivo o Negativo. Ejemplo: S9999
- U. Indica el símbolo de la moneda del euro cuando se utiliza el parámetro NLS_DUAL_CURRENCY.. Ejemplo: U9999
- V. Devuelve el valor en potencia de 10. Ejemplo 999V99
- X. Devuelve el valor en formato hexadecimal. Ejemplo: XXXX
- En esta sintaxis, el parámetro <Opciones numéricas> es una cadena que contiene las siguientes palabras clave:
- "NLS_CURRENCY='moneda en nosotros'"
- "NLS_NUMERIC_CHARACTERS ='dg'": dg' es una cadena de 2 caracteres cuyo primero corresponde al separador decimal y el segundo al separador de grupo (entre mil y cien, por ejemplo)..
Ejemplo: NLS_CURRENCY='$', NLS_NUMERIC_CHARACTERS='dg
Observación: En Default, la lengua, la moneda y los separadores están definidos por la nación actual. CHAR CHAR se utiliza para convertir un código ASCII (entero) en carácter.
Formato de uso:<código ASCII> es un número y corresponde al carácter ASCII a convertir, entre 0 y 255. De lo contrario, el carácter devuelto por la función es NULL. El resultado de la función es el carácter correspondiente al código ASCII de <código ASCII>.. Observación: El resultado depende del personaje actual set. CRH CHR se utiliza para convertir un código ASCII (entero) en un carácter.<código ASCII> es un número y corresponde al carácter ASCII a convertir, entre 0 y 255. De lo contrario, el carácter devuelto por la función es NULL. El resultado de la función es el carácter correspondiente al código ASCII de <código ASCII>.. Observaciones: - El resultado depende del personaje actual set.
- En UTF8, el número entero enviado se interpreta como un "punto de código"; en caso contrario, el carácter devuelto corresponde al módulo de caracteres 256.
ENG CAST se utiliza para convertir un dato de un tipo a otro.- <Expresión> representa el valor a convertir.
- <Type> representa el nuevo tipo en el que se convierte la expresión. Los tipos disponibles son:
| | CHARACTER | Cadena de caracteres | CHARACTER(Tamaño) | String on size | VARCHAR(Tamaño) | String on size | CHARACTER VARYING(Tamaño) | String on size | CHAR VARYING(Tamaño) | String on size | NVARCHAR(Tamaño) | Unicode string on size | VARCHAR(Tamaño) BINARY | Binary string on size | BINARY(Tamaño) | Binary string on size | VARBINARY(Tamaño) | Binary string on size | BLOB | Memo binario | CLOB | Nota de texto | TEXTO | Nota de texto | NCLOB | Nota de Unicode | NTEXT | Nota de Unicode | NUMBER(Precisión) | Integro | NUMBER(Precisión, escala) | Integro | DECIMAL(Precisión) | Real | DECIMAL(Precisión, escala) | Real | TINYINT UNSIGNED | Un entero de 1 byte sin firmar | SMALLINT UNSIGNED | Un entero de 2 bytes sin firmar | INTEGER UNSIGNED | Un entero de 4 bytes sin firmar | BIGINT UNSIGNED | Un entero de 8 bytes sin firmar | TINYINT | Firmado un entero de 1 byte | SMALLINT | Firmado un entero de 2 bytes | INTEGER | Firmado un entero de 4 bytes | BIGINT | Firmado un entero de 8 bytes | FLOAT | 4 bytes reales | REAL | 8 bytes reales | DOUBLE PRECISION | 8 bytes reales | MONEY | Moneda | FECHA | FECHA | FECHA | Fecha y hora | TIEMPO | momento | El resultado de la función es el valor convertido.Ejemplo: Este código devuelve: "126". CONVERT
CONVERTENCIA se utiliza para convertir una cadena de caracteres de un personaje set a otro. Formato de uso: CONVERT(Text to Convert, Charset Used, New Charset) Ejemplo: Convertir una cadena de UTF-8 a LATIN1: SELECT CONVERT('text in utf8', 'UTF8', 'LATIN1') Observación: Esta función no está disponible para las consultas SQL ejecutadas en archivos HFSQL en Android. INITCAP INITCAP devuelve una cadena de caracteres donde la primera letra de cada palabra se escribe en mayúsculas y todas las demás letras se escriben en minúsculas.
Formato de uso:Ejemplo: INITCAP ('grEat Weather today') Este código devuelve: 'Hace Buen Clima'. LOWER convierte una expresión en minúsculas. LOWER no puede utilizarse en una fuente de datos Access. Formato de uso: LOWER(Initial Expression) Ejemplo: El siguiente código SQL se utiliza para convertir el nombre de los clientes en caracteres en minúsculas: SELECT LOWER(FirstName)
FROM CUSTOMER UPPER convierte una expresión en mayúsculas. UPPER no puede utilizarse en una fuente de datos de Access. Formato de uso: UPPER(Initial Expression) Ejemplo: El siguiente código SQL se utiliza para convertir las ciudades de los clientes en caracteres mayúsculas: SELECT UPPER(City)
FROM CUSTOMER LCASE LCASE devuelve una cadena con todos los caracteres en minúsculas según el carácter actual set.Formato de uso: LCASE(Initial Expression) Ejemplo: El siguiente código SQL se utiliza para convertir las ciudades de los clientes en caracteres minúsculos: SELECT LCASE(City)
FROM CUSTOMER UCASE UCASE devuelve una cadena con todos los caracteres en mayúsculas según el set actual de caracteres.Formato de uso: UCASE(Initial Expression) Ejemplo: El siguiente código SQL se utiliza para convertir las ciudades de los clientes en caracteres mayúsculas: SELECT UCASE(City)
FROM CUSTOMER LEN y LENGTH devuelven el tamaño (el número de caracteres) de una expresión. Este tamaño incluye todos los caracteres, incluyendo los espacios y el 0 binario. LEN puede utilizarse en todos los tipos de fuentes de datos, excluyendo las fuentes de datos de Oracle. Para las fuentes de datos de Oracle, utilice LENGTH. Formato de uso: Ejemplo: El siguiente código SQL se utiliza para averiguar el tamaño de los nombres de los clientes: SELECT LEN(Name)
FROM CUSTOMER LENGTH sólo puede utilizarse en una fuente de datos Oracle. Formato de uso: LENGTH(Initial Expression) Ejemplo: El siguiente código SQL se utiliza para averiguar el tamaño de los nombres de los clientes: SELECT LENGTH(Name)
FROM CUSTOMER INSTR devuelve la posición de una cadena de caracteres en una expresión. INSTR sólo puede utilizarse en una fuente de datos Oracle o en una fuente de datos que soporte el estándar SQL-92. Formato de uso: INSTR(Initial Expression, String to Find, Start Position, Occurrence) Ejemplo: El siguiente código SQL se utiliza para averiguar la posición de la primera aparición de la letra "T" en las ciudades de los clientes: SELECT INSTR(City, 'T', 1, 1)
FROM CUSTOMER CAMPO CAMPO devuelve el índice de la cadena buscada en la lista.Si no se encuentra la cadena, la función devuelve 0. Formato de uso: FIELD(String to Find, String1, String2, ...) FIND_IN_set FIND_IN_set devuelve la posición de una cadena en una lista de valores.Si no se encuentra la cadena, la función devuelve 0. Formato de uso: FIND_IN_SET(<String to Find>, <List of Values>) El parámetro <Lista de valores> corresponde a una cadena de caracteres que contiene los valores separados por una coma. Ejemplo: El siguiente código devuelve 3: FIND_IN_SET('Red','Blue,Yellow,Red,Green') PATINDEX devuelve la posición de la primera aparición de un string correspondiente a un valor especificado (con caracteres genéricos). Los caracteres comodín autorizados son: - '%': representa cero, uno o más caracteres.
- '_': representa un solo carácter.
Estos caracteres genéricos se pueden combinar. PATINDEX puede utilizarse en una fuente de datos HFSQL Classic o SQL Server. Formato de uso: PATINDEX(Value to Find, Expression) Ejemplo: El tabla a continuación presenta la posición de la primera ocurrencia encontrada de acuerdo a los valores buscados: | | | | | Valor buscado |
---|
Nombre de la ciudad | '%E%' | '%E_' | %AR%. | MONTPELLIER | 6 | 10 | 0 | PARÍS | 0 | 0 | 2 | TARBES | 5 | 5 | 2 | TOULOUSE | 8 | 0 | 0 | VIENA | 3 | 0 | 0 |
POSITION devuelve la posición de una cadena de caracteres en una expresión. Formato de uso: POSITION(String to find IN Initial expression) POSITION(String to find IN Initial expression, Start position) Ejemplo: TestQRY is Data Source sSQLCode is string = [ SELECT POSITION( 'No' IN Name ) As NamePos FROM cooperator LIMIT 0 , 30 ] IF NOT HExecuteSQLQuery(TestQRY, MyConnection, hQueryWithoutCorrection, sSQLCode) THEN Error(HErrorInfo()) END FOR EACH TestQRY Trace(TestQRY.NamePos) END
CUENTA retornos: - el número de registros seleccionados en un archivo.
- el número de valores no nulos de un elemento.
- el número de valores diferentes y valores no nulos de un artículo.
Formato de uso: COUNT(*) COUNT(Item) COUNT(DISTINCT Item) Ejemplos: - El siguiente código SQL se utiliza para averiguar el número de productos que se encuentran en el archivo del producto:
SELECT COUNT(*)
FROM PRODUCT - El siguiente código SQL se utiliza para averiguar el número de productos a los que se aplica un tipo de IVA del 5,5 %:
SELECT COUNT(VATRate)
FROM PRODUCT
WHERE VATRate = '5.5' - El siguiente código SQL se utiliza para averiguar el número de tipos de IVA diferentes y no nulos:
SELECT COUNT(DISTINCT PRODUCT.VATRate)
FROM PRODUCT
- la media de una set de valores no nulos.
- el promedio de un conjunto de valores diferentes y no nulos.
Formato de uso: AVG(Item) AVG(DISTINCT Item) Ejemplos: - El siguiente código SQL se utiliza para averiguar el salario medio de los empleados:
SELECT AVG(Salary)
FROM EMPLOYEE - El siguiente código SQL se utiliza para conocer la media de los diferentes salarios de los empleados:
SELECT AVG(DISTINCT Salary)
FROM EMPLOYEE
MÁX MAX devuelve el mayor de los valores encontrados en un elemento para todos los registros seleccionados en el fichero. El MAX utilizado en una consulta sin agrupación debe devolver un solo Record. Si la consulta contiene agrupaciones, se devolverá un Record por cada agrupación. Si la fuente de datos contiene Record s, el Record devuelto por la consulta contendrá el valor máximo. Si la fuente de datos no contiene Record, el valor de MAX en el Record devuelto es NULL. Formato de uso: MAX(Item)
MAX(DISTINCT Item) Ejemplo: El siguiente código SQL se utiliza para averiguar el salario máximo de los empleados: SELECT MAX(Salary)
FROM EMPLOYEE
MIN devuelve el menor de los valores no nulos encontrados en un elemento para todos los registros seleccionados en el fichero. Formato de uso: MIN(Item)
MIN(DISTINCT Item) Ejemplo: El siguiente código SQL se utiliza para averiguar el salario mínimo de los empleados: SELECT MIN(Salary)
FROM EMPLOYEE
SUMA retornos: - la suma de los valores no nulos encontrados en un ítem para todos los registros seleccionados en el archivo.
- la suma de los valores diferentes y no nulos encontrados en un elemento para todos los registros seleccionados en el fichero.
Formato de uso: SUM(Item)
SUM(DISTINCT Item) Ejemplos: - El siguiente código SQL se utiliza para averiguar la suma total de los salarios:
SELECT SUM(Salary)
FROM EMPLOYEE - El siguiente código SQL se utiliza para averiguar la suma total de los diferentes salarios:
SELECT SUM(DISTINCT Salary)
FROM EMPLOYEE
Observación : El artículo manejado por SUMA no debe coincidir con el resultado de una operación. Por lo tanto, la siguiente sintaxis genera un error:
SELECT (A*B) AS C, SUM C
FROM MYFILE Esta sintaxis debe ser sustituida por la siguiente:
SELECT (A*B) AS C, SUM(A*B)
FROM MYFILE
CADA TODOS es una función agregada (como SUM por ejemplo), lo que significa que las funciones actúan sobre un grupo de datos y devuelven un valor. TODOS beneficios: - True si todos los argumentos recibidos se han verificado y son verdaderos.
- False si al menos uno de los argumentos no ha sido verificado.
Formato de uso: EVERY(Expression 1, Expression 2, ..., Expression N) Ejemplo:
El siguiente código SQL se utiliza para get la lista de empresas con empleados cuyo salario es superior a 10000: SELECT company.name, every(employee.salary > 10000) AS rich
FROM company NATURAL JOIN employee GROUP BY company.name TOP devuelve los primeros n registros del resultado de la consulta. TOP no puede utilizarse en una fuente de datos Oracle o PostgreSQL. Formato de uso: TOP Number of the last selected record Ejemplo: El siguiente código SQL se utiliza para listar los 10 mejores clientes: SELECT TOP 10 SUM(ORDERS.TotalIncTax) AS TotalIncTax,
CUSTOMER.CustomerName
FROM CUSTOMER, ORDERS
WHERE CUSTOMER.CustNum = ORDERS.CustNum
GROUP BY CustomerName
ORDER BY TotalIncTax DESC Observación: - Le recomendamos que utilice TOP en una consulta ordenada. De lo contrario, los Record devueltos por TOP serán seleccionados según su número de Record.
- Usted tiene la capacidad de pasar un parámetro a
TOP. El parámetro puede ser: SELECT TOP {pMaxNumberCustomers}
Customer.CustomerID AS CustomerID,
Customer.LastName AS LastName,
Customer.FirstName AS FirstName,
Customer.Email AS Email,
Customer.FidelityBonus AS FidelityBonus
FROM
Customer FONDO BOTTOM devuelve los últimos n registros encontrados en el resultado de una consulta. BOTTOM sólo puede utilizarse en una fuente de datos HFSQL. Formato de uso: BOTTOM Number of the last selected record Ejemplo: El siguiente código SQL se utiliza para listar los 10 peores clientes: SELECT BOTTOM 10 SUM(ORDERS.TotalIncTax) AS TotalIncTax,
CUSTOMER.CustomerName
FROM CUSTOMER, ORDERS
WHERE CUSTOMER.CustNum = ORDERS.CustNum
GROUP BY CustomerName
ORDER BY TotalIncTax DESC Observación: - Se recomienda utilizar BOTTOM en una consulta ordenada. De lo contrario, los Record devueltos por BOTTOM serán seleccionados según su número de Record.
- Usted tiene la capacidad de pasar un parámetro a
ABAJO. El parámetro puede ser: LÍMITE LÍMITE devuelve los primeros n registros del resultado de la consulta. LIMIT no puede utilizarse en una fuente de datos Oracle o PostgreSQL. Formato de uso: LIMIT Number of the last selected record Ejemplo: El siguiente código SQL se utiliza para listar los 10 mejores clientes: SELECT SUM(ORDERS.TotalIncTax) AS TotalIncTax,
CUSTOMER.CustomerName
FROM CUSTOMER, ORDERS
WHERE CUSTOMER.CustNum = ORDERS.CustNum
GROUP BY CustomerName
ORDER BY TotalIncTax DESC
LIMIT 10 Observación: - No se recomienda utilizar LIMIT en una consulta ordenada. De lo contrario, los Record devueltos por TOP serán seleccionados según su número de Record.
- Usted tiene la capacidad de pasar un parámetro a
LÍMITE. El parámetro puede ser: ASCII ASCII devuelve el código ASCII: - de un personaje.
- del primer carácter encontrado en una cadena.
Si el carácter o el string corresponde a un string vacío ("""), ASCII devuelve 0. Formato de uso: -- ASCII code of character ASCII(Character) -- ASCII code of first character found in a string ASCII(Character string) UNICODE devuelve el valor entero definido por el estándar Unicode: - de un personaje.
- del primer carácter encontrado en una cadena.
Formato de uso: -- Unicode code of character UNICODE(Character) -- Unicode code of first character found in a string UNICODE(Character string)
USUARIO_ACTUAL CURRENT_USER devuelve el nombre de usuario de la conexión actual. Formato de uso: Ejemplo: El siguiente código actualiza al autor de la modificación realizada en CUSTOMER tabla: UPDATE CUSTOMER SET USER=CURRENT_USER() WHERE CUSTOMERID=1
SYSTEM_USER SYSTEM_USER devuelve el nombre de usuario de la conexión actual. Formato de uso: Ejemplo: El siguiente código actualiza al autor de la modificación realizada en CUSTOMER tabla: UPDATE CUSTOMER SET USER=SYSTEM_USER() WHERE CUSTOMERID=1
NOMBRE_DE_USUARIO USER_NAME devuelve el nombre de usuario de la conexión actual. Formato de uso: Ejemplo: El siguiente código actualiza al autor de la modificación realizada en CUSTOMER tabla: UPDATE CUSTOMER SET USER=USER_NAME() WHERE CUSTOMERID=1 SONIDO y SONIDO COMO devuelve la representación fonética de una cadena de caracteres (basada en un algoritmo inglés). Formato de uso: SOUNDEX(String)
SOUND LIKE(String) Ejemplo: El siguiente código SQL se utiliza para listar los clientes cuyo nombre fonéticamente corresponde a "Henry": SELECT CUSTOMER.CustomerLastName
FROM CUSTOMER
WHERE SOUNDEX(CUSTOMER.CustomerName) = SOUNDEX('Henry') SELECT CUSTOMER.CustomerLastName
FROM CUSTOMER
WHERE CUSTOMER.CustomerName SOUND LIKE 'Henry' Observación: SOUNDEX utilizado en diferentes bases de datos (HFSQL, Oracle, MySQL, ....) puede devolver resultados diferentes según la base de datos utilizada.. SOUNDEX2 y SONIDO2 COMO devuelve la representación fonética de una cadena de caracteres (basada en un algoritmo cercano al francés). Formato de uso: SOUNDEX2(String)
SOUND2 LIKE(String) Ejemplo: El siguiente código SQL se utiliza para listar los clientes cuya ciudad fonéticamente corresponde a "Montpellier": SELECT CUSTOMER.CityName
FROM CUSTOMER
WHERE SOUNDEX2(CUSTOMER.CityName) = SOUNDEX2('Montpellier') SELECT CUSTOMER.CityName
FROM CUSTOMER
WHERE CUSTOMER.CityName SOUND2 LIKE 'Montpellier' AÑADIR_MESES se utiliza para añadir varios meses a una fecha específica. Formato de uso: ADD_MONTHS(Date,Number of months) Ejemplo: El siguiente código SQL se utiliza para seleccionar los pedidos realizados en abril de 2003. SELECT ORDDATE,
ADD_MONTHS('20070203',2) AS AM
FROM ORDERS ÚLTIMO DÍA se utiliza para averiguar la fecha del último día del mes especificado. Formato de uso: Ejemplo: El siguiente código SQL se utiliza para seleccionar los pedidos realizados en febrero de 2008: SELECT LAST_DAY('20080203') AS LD,
ORDDATE
FROM ORDERS
WHERE ORDERS.CUUNIKKEY=2 ORDER BY ORDDATE
DÍA DÍA devuelve el día del mes, es decir, un número incluido entre 1 y 31. Formato de uso:
DAYOFMONTH DÍA MES devuelve el día del mes (incluido entre 1 y 31). Formato de uso:
DAYOFWEEK DÍA DE LA SEMANA devuelve el día de la semana (1 para el domingo, 2 para el lunes, etc.). Formato de uso:
DAYOFYEAR DÍA DEL AÑO devuelve el día del año (incluido entre 1 y 366). Formato de uso:
MES DE MES EOMONTH devuelve el último día del mes de la fecha especificada. Formato de uso: EOMONTH(Start date [, Number of months to add ] ) donde: - Fecha de inicio: Fecha para la que se devuelve el último día del mes.
- Número de meses a añadir: Número de meses que hay que añadir a la fecha de inicio antes de calcular el último día del mes.
AÑO y MES Las funciones YEAR y MONTH permiten obtener el año y el mes de una fecha, respectivamente. Formato de uso: donde la fecha corresponde a: - la fecha escrita: AÑO - MES - DÍA (AAAAMMDD o AAAAMM-DD)
- A Partial DATE. en este caso, los datos que faltan se representan con 0
- sólo un año (YEAR)
- sólo un año y un mes (AÑO-MES)
Observación: - Las fechas se decodifican de izquierda a derecha: para que una fecha sea válida, toda la información disponible debe ser válida.
- Si el formato no es válido, la función devuelve NULL.
CURRENT_TIMESTAMP devuelve la hora local del servidor (en formato datetime). Formato de uso:
GETDATE GETDATE devuelve la hora local del servidor (en formato datetime). Formato de uso:
ES UNA BUENA IDEA. GETUTCDATE devuelve la hora UTC del servidor (en formato datetime). Formato de uso:
DATEADD DATEADD añade un valor a la fecha de inicio y devuelve la nueva fecha. Formato de uso: DATEADD(Part to add, number, date ) donde: - Parte a añadir: Parte de la fecha a la que se añadirá el número. Este parámetro puede ser:
| | Fecha parte | Abreviaturas |
---|
año | yy, yyyy | trimestre | qq, q | mes | mm, m | día del año | dy, y | día | dd, d | semana | wk, ww | entre semana | dw, en | hora | hh | minuto | mi, n | segundo | ss, s | milisegundo | ms | microsegundo | mcs | nanosegundo | ns |
- Número: número entero correspondiente al número de unidades a añadir.
- salir con: fecha o fecha-hora a utilizar.
DATEDIFF y DATEDIFF_BIG DATEDIFF calcula la diferencia entre dos fechas en una unidad determinada. El valor de retorno es un entero con signo. DATEDIFF_BIG calcula la diferencia entre dos fechas en una unidad determinada. El valor de retorno es un entero grande con signo. Formato de uso: DATEDIFF(Part used, Start date, End date)
DATEDIFF_BIG(Part used, Start date, End date) donde: - Parte utilizada: Parte de la fecha en la que se realizará el cálculo. Este parámetro puede ser:
| | Fecha parte | Abreviaturas |
---|
año | yy, yyyy | trimestre | qq, q | mes | mm, m | día del año | dy, y | día | dd, d | semana | wk, ww | entre semana | dw, en | hora | hh | minuto | mi, n | segundo | ss, s | milisegundo | ms | microsegundo | mcs | nanosegundo | ns |
- Fecha de inicio: fecha de inicio o fecha-hora para el cálculo.
- Fecha de finalización: fecha de finalización o fecha-hora para el cálculo.
DATEPART DATEPART devuelve el entero correspondiente a la parte solicitada de la fecha-hora especificada. Formato de uso: DATEPART(Part used, date) donde: - Parte utilizada: Parte de la fecha a extraer. Este parámetro puede ser:
| | Fecha parte | Abreviaturas |
---|
año | yy, yyyy | trimestre | qq, q | mes | mm, m | día del año | dy, y | día | dd, d | semana | wk, ww | entre semana | dw, en | hora | hh | minuto | mi, n | segundo | ss, s | milisegundo | ms | microsegundo | mcs | nanosegundo | ns |
- Fecha de inicio: fecha o fecha-hora utilizada.
DATETIMEFROMPARTS devuelve un valor datetime que corresponde a los elementos especificados. Formato de uso: DATETIMEFROMPARTS(Year, Month, Day, Hours, Minutes, Seconds, Milliseconds)
DATEFROMPARTS DATEFROMPARTS devuelve un valor de fecha que corresponde a los elementos especificados. Formato de uso: DATETIMEFROMPARTS(Year, Month, Days) MESES_ ENTRE se utiliza para averiguar el número de meses entre dos fechas especificadas. Formato de uso: MONTHS_BETWEEN(Date1, Date2) Ejemplo: El siguiente código SQL se utiliza para seleccionar los pedidos realizados entre dos fechas: SELECT ORDDATE,
MONTHS_BETWEEN('20070203','20070102') AS MB
FROM ORDERS Ejemplo: El siguiente código SQL se utiliza para seleccionar a los clientes según su edad: SELECT CUSTOMER.CUSTOMERID,
CUSTOMER.LASTNAME,CUSTOMER.FIRSTNAME,
CAST(MONTHS_BETWEEN(SYSDATE,CUSTOMER.DATE_OF_BIRTH)/12 AS FLOAT) AS Age
FROM
CUSTOMER
WHERE
Age >= 18 TIEMPO_NUEVO se utiliza para averiguar una fecha después de convertir su zona horaria. Formato de uso: NEW_TIME(Date, Time Zone 1, Time Zone 2) Ejemplo: SELECT NEW_TIME('200311010145', 'AST', 'MST') AS NTI
FROM CUSTOMER Observación: Si los husos horarios corresponden a una cadena vacía ("""), el resultado será un valor de DateTime de 0. PRÓXIMO_DÍA se utiliza para averiguar el primer día de la semana siguiente a la fecha o el día especificado. Formato de uso: Ejemplo: SELECT NEXT_DAY('20071007','Sunday') AS NXD
FROM CUSTOMER RONDA se utiliza para redondear la fecha al formato especificado. Formato de uso: Ejemplo: SELECT ORDDATE,
ROUND(ORDDATE,'YYYY') AS TR
FROM ORDERS SÍDATE se utiliza para averiguar la fecha y la hora actuales. Formato de uso: Ejemplo: SELECT SYSDATE AS SY FROM CUSTOMER WHERE CUSTOMERID=1 TRUNC se utiliza para truncar la fecha al formato especificado. Formato de uso: El parámetro "Formato" puede corresponder a los siguientes valores: - Siglo: "CC" o "SCC"
- año: "Y", "YEAR", "YY", "YYY", "YYYY", "SYEAR", "SYYYY"
- Año ISO: "I," "IY," "IYY," "IYYYY.": ISOAño
- Trimestre: "Q"
- Mes: "MM", "MON", "MES"
- Primer día del mes que es el mismo día de la semana: "W"
- Primer día de la semana: "D","DÍA","DY".
- jornada: "DD","DDD","J".
- Hora: "HH", "HH12", "HH24"
- Minutos: "MI"
Ejemplo: SELECT ORDDATE,
TRUNC(ORDDATE) AS TR
FROM ORDERS
WHERE ORDUNIKKEY
ISDATE ISDATE se utiliza para determinar si una expresión corresponde a una fecha. Esta función devuelve: - 1 si la expresión corresponde a una fecha o fecha-hora
- 0 de lo contrario.
Formato de uso: Ejemplo: SELECT Date, ISDATE(Date) FROM ORDER WHERE OrderID=50 COALESCE se usa para encontrar la primera expresión no nula entre sus argumentos. Formato de uso: COALESCE(Param1, Param2, ...) Ejemplo: SELECT COALESCE(hourly_wage, salary, commission) AS Total_Salary FROM wages GRAN PRUEBA GREATEST devuelve el mayor valor de los elementos pasados como parámetro. Formato de uso: GREATEST(Param1, Param2, ...) CARGA LEAST devuelve el valor más bajo de los elementos pasados como parámetro. Formato de uso: LEAST(Param1, Param2, ...) NVL se utiliza para sustituir los valores nulos de una columna por un valor de sustitución. ISNULL e IFNULL son idénticos. ISNULL se utiliza en SQL Server e IFNULL se utiliza en bases de datos MySQL o Progress. Formato de uso: NVL(Column name, Substitution value) Ejemplo: SELECT hourly_wage AS R1,NVL(hourly_wage,0) AS Total FROM wages NULLIF devuelve un valor NULL si las dos expresiones especificadas son iguales. Formato de uso: NULLIF(expression1, expression2) DECODE sirve para conocer el modo de funcionamiento de un IF .... THEN... Declaración ELSE. Formato de uso: DECODE(Column_Name, Compared value 1, Returned value 1, [Compared value 2, ... Returned value 2][, Default value]) Ejemplo: Según el cliente seleccionado, devuelve el nombre correspondiente al identificador especificado.: SELECT CUSTOMER_NAME,
DECODE(CUSTOMER_ID, 10000, 'Customer 1',10001,'Customer 2',10002,'Customer 3','Other')
FROM CUSTOMER CASO sirve para conocer el modo de funcionamiento de un IF .... THEN... Declaración ELSE. Formato de uso: CASE Column_Name WHEN Compared value 1 THEN Returned value 1 [WHEN compared value 2 THEN ... Returned value 2][ELSE Default returned value] END CASE WHEN Condition 1 THEN Returned value 1 [WHEN Condition 2 THEN Returned value 2] ... [ELSE Default returned value] END Ejemplo: Devuelve "tres" si el ítem corresponde a "3" Devuelve "cuatro" si el ítem corresponde a "4" y devuelve "otro" en los demás casos.: SELECT itmInt, CASE itmInt WHEN 3 THEN 'three' WHEN 4 THEN 'four' ELSE 'other' END SELECT itmInt, CASE WHEN itmInt=3 THEN 'three' WHEN itmInt=4 THEN 'four' ELSE 'other' END El MATCH CONTRA se utiliza para averiguar la pertinencia del Record durante una búsqueda de texto completo. Formato de uso: MATCH(List of items) AGAINST [ALL] Value Donde: - Lista de artículos corresponde a la lista de elementos de índice separados por comas (el orden de los elementos no es importante)
- Valor corresponde al valor buscado en los diferentes ítems. Este parámetro puede corresponder a un valor literal o a un nombre de parámetro. El valor de búsqueda puede contener los siguientes elementos:
| | aspecto | Significado | Una sola palabra | Se buscará la palabra especificada. La pertinencia aumentará si el texto contiene esta palabra. Ejemplo: "WINDEV" busca "WINDEV". | Dos palabras separadas por un espacio en blanco | Busca una de las palabras. Ejemplo: "WINDEV WEBDEV" busca los textos que contienen "WINDEV" o "WEBDEV". | Una palabra precedida por el signo "+ | La palabra especificada es obligatoria. Ejemplo: "+WINDEV" busca los textos que necesariamente contienen "WINDEV". | Una palabra precedida por el signo "- | La palabra especificada no debe encontrarse en el texto. Ejemplo: "-Índice" busca los textos que no contienen "Índice". | Una palabra precedida por el signo "~ | Si el texto contiene la palabra especificada, la relevancia se reducirá. | Una o más palabras entre comillas | Las palabras especificadas se buscan en el grupo y en orden. Atención: si "Ignorar las palabras menos que" difiere de "0", no se buscarán las palabras entre comillas de un tamaño inferior al especificado. | Una palabra seguida del signo "*" ". | El tipo de búsqueda realizada es "Comienza con" la palabra especificada. | [ALL] se utiliza para forzar la sustitución de los caracteres de espacio por "+" en el valor buscado.Ejemplo: En este ejemplo, EDT_Find es un control Campo de entrada y ConnectedUserID es un Variable. MyQuery is string = [ SELECT * FROM Contact WHERE MATCH(Contact.LastName, Contact.FirstName, Contact.HTMLComment, Contact.RoughTextComment, Contact.Comments, Contact.Phone, Contact.Office, Contact.Cell, Contact.Email, Contact.MSN, Contact.Internet_site, Contact.Country, Contact.FaxNum, Contact.City) AGAINST (' ] MyQuery = MyQuery + EDT_Find + [ ') AND Contact.UserID = ] MyQuery = MyQuery + ConnectedUserID + [ ORDER BY LastName DESC ] HExecuteSQLQuery(QRY_SRCH, hQueryDefault, MyQuery) FOR EACH QRY_SRCH TableAddLine(TABLE_Contact_by_category, ... QRY_SRCH.ContactID,QRY_SRCH.CategoryID, ConnectedUserID, ... QRY_SRCH.LastName, QRY_SRCH.FirstName) END CASE ERROR: Error(HErrorInfo())
Para más detalles sobre la búsqueda de texto completo, véase Búsqueda e índice de texto completo. MD5 MD5 calcula la suma de comprobación MD5 de la cadena pasada como parámetro. El valor devuelto es un entero hexadecimal de 32 caracteres que puede utilizarse como clave hash, por ejemplo. Formato de uso: SHA y SHA1 SHA y SHA1 calculan la suma de comprobación SHA1 de 160 bits de la cadena pasada como parámetro según el estándar RFC 3174 (Secure Hash Algorithm). El valor devuelto es una cadena hexadecimal de 40 caracteres o NULL si el argumento es NULL. Esta función se puede utilizar para guardar las teclas. Formato de uso: REGEXP o RLIKE o ~ o REGEXP_LIKE
El propósito de REGEXP o RLIKE o ~ o REGEXP_LIKE es evaluar una expresión regular dentro de una consulta SQL. Formato de uso: REGEXP_LIKE(string, expression) donde: - corresponde a la cadena que debe ser evaluada.
- corresponde a la expresión regular.
El resultado de la función es un booleano: - True si la cadena corresponde a la expresión regular.
- False en caso contrario.
Observación: En una expresión regular, el carácter "\" se utiliza para especificar un formato específico. Por lo tanto, "\r" corresponde a un retorno de carro y "\n" a una envoltura de Line... Ejemplos: En estos ejemplos, la cadena "abcde" se compara con una expresión regular. sQuery = "SELECT 'abcde' REGEXP 'a[bcd]{3}e' AS result" QRY is Data Source HExecuteSQLQuery(QRY, hQueryDefault, sQuery) HReadFirst(QRY) let bResult = QRY.result // bResult is set to True
sQuery = "SELECT 'abcde' REGEXP 'a[bcd]{2}e' AS result" HExecuteSQLQuery(QRY, hQueryDefault, sQuery) HReadFirst(QRY) bResult = QRY.result // bResult is set to False
Operadores y funciones Bitwise Los siguientes son operadores a nivel de bits: Las funciones correspondientes son las siguientes: - BITAND,
- BITOR,
- BITXOR,
- BITNOT,
- BITANDNOT.
Ejemplo: dsQuery is Data Source sSQL is string = [ SELECT 1 | 2 AS op_or, -- 3 BITOR(1, 2) AS fct_or, -- 3 3 & 6 AS op_and, -- 2 BITAND(3, 6) AS fct_and, -- 2 ~CAST(240 AS TINYINT) AS op_not, -- 15 BITNOT(CAST(240 AS TINYINT)) AS fct_not, -- 15 5 ^ 6 AS op_xor, -- 3 BITXOR(5, 6) AS fct_xor, -- 3 BITANDNOT(3,1) AS fct_andnot, -- 2 1 << 2 AS sl, -- 4 16 >> 2 AS sr -- 4 ] HExecuteSQLQuery(dsQuery, sSQL) Trace("Expected:") Trace("3 - 3 - 2 - 2 - 15 - 15 - 3 - 3 - 2 - 4 - 4") Trace("Received:") FOR EACH dsQuery Trace(Replace(HRecordToString(dsQuery), TAB, " - ")) END
ES JSON XXX Los comandos "IS JSON xxx" se utilizan para determinar si un elemento es: - un contenido JSON (IS JSON),
- un contenido JSON que representa un objeto (IS JSON OBJECT),
- un contenido JSON que representa un array (IS JSON ARRAY),
- ...
Formato de uso: IS [NOT] JSON [OBJECT|ARRAY|SCALAR|VALUE] (expression) El comando devuelve 1 si la expresión contiene datos válidos, 0 en caso contrario. Ejemplo: SELECT
Product.Characteristics IS JSON AS ItemISJSON,
Product.Characteristics IS JSON OBJECT AS ItemISJSONOBJECT,
Product.Characteristics IS JSON ARRAY AS ItemISJSONARRAY,
Product.Characteristics IS JSON SCALAR AS ItemISJSONSCALAR,
Product.Characteristics IS JSON VALUE AS ItemISJSONVALUE
FROM
Product
JSON_VALOR El comando SQL "JSON_VALUE" obtiene el valor de un elemento contenido en el elemento JSON. Formato de uso: JSON_VALUE(expression, path) donde: - corresponde a un texto Variable que contiene JSON
- ruta corresponde al Property para extraer.
Ejemplo:
SELECT
Product.Reference,
Product.Name,
Product.Characteristics,
JSON_VALUE(Product.Characteristics,
'$.brand' DEFAULT 'no brand' ON ERROR) AS Brand
FROM
Product
JSON_CUESTA El comando SQL "JSON_QUERY" extrae un objeto o un array de una cadena JSON. Formato de uso: JSON_QUERY(expression, path) donde: - corresponde a una Variable que contiene un texto JSON
- ruta especifica el objeto o la array a extraer.
Ejemplo: SELECT
Product.Reference,
Product.Name,
Product.Characteristics,
JSON_QUERY(Product.Characteristics, '$.colors' ) AS Colors
FROM
Product
JSON_EXISTE El comando SQL "JSON_EXISTS" permite get los registros con un elemento JSON que contiene un valor determinado.
Formato de uso: JSON_EXISTS(expression, filter) donde: - corresponde a una Variable que contiene un texto JSON
- El filtro corresponde a los datos que hay que extraer.
Ejemplo: SELECT
Product.Reference,
Product.Name,
Product.Characteristics
FROM
Product
WHERE
JSON_EXISTS(Product.Characteristics, '$.heel?(@ == true)') JSON_OBJETO El comando SQL "JSON_OBJECT" devuelve un objeto JSON de cualquier elemento. El contenido recuperado de JSON es un objeto. Ejemplo: SELECT
Contact.ContactID,
JSON_OBJECT('FullName': Contact.lastname+' '+Contact.firstname,
'Address': Address+' '+PostalCode+' '+city+' '+country)
AS JSONContent
FROM
Contact
WHERE
ContactID <= 3 JSON_OBJECTAGG El comando SQL "JSON_OBJECTAGG" devuelve un objeto JSON que contiene pares clave-valor para cada clave y valor específicos en una set de valores SQL. Ejemplo: SELECT
JSON_OBJECTAGG(Contact.lastname+' '+Contact.firstname VALUE Address+' '+
PostalCode+' '+city+' '+country) AS JSONContent
FROM
Contact
WHERE
ContactID <= 3 JSON_ARRAY El comando SQL "JSON_ARRAY" devuelve un JSON array de cualquier elemento. El contenido de JSON recuperado es un array ( [xxx, ...] ). Ejemplo: SELECT
Contact.ContactID,
JSON_ARRAY(Contact.lastname+' '+Contact.firstname) AS JSONContent
FROM
Contact
WHERE
ContactID <= 3 JSON_ARRAYAGG El comando SQL "JSON_ARRAYAGG" devuelve una array JSON que contiene pares clave-valor para cada clave y valor específicos en una set de valores SQL. El contenido de JSON recuperado es un array ( [xxx, ...] ). Ejemplo: SELECT country,
JSON_ARRAYAGG(customer.name)
FROM customer
GROUP BY country -> [ "romaric", "bob", "joe" ]
Esta página también está disponible para…
|
|
|