- 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:
| | | - LEN y 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 "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: - una constante: cadena de caracteres, entero, real, carácter, ... Por ejemplo: 125, "A", "Doe".
- un nombre de artículo .
- el resultado de otra función SQL .
- un cálculo sobre 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: 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') VALOR EXTRACTO EXTRACTVALUE se utiliza para manipular cadenas 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: EXTRACTVALUE(XML fragment, XPATH expression) 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 (que significa los primeros caracteres) de una expresión.
Formato: 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 DERECHA extrae la parte derecha (es decir, los últimos caracteres) de una expresión. Formato: 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 que se encuentra en el contenido de una expresión desde 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 solo se puede utilizar en una fuente de datos de Access. Formato: 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 solo se puede utilizar en una fuente de datos Oracle, HFSQL Classic o HFSQL Client/Server . Formato: 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 DIVIDIR_PARTE SPLIT_PART divide una cadena de caracteres según el separador especificado y devuelve la enésima parte de la cadena.Formato: 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 elimina una cadena de caracteres que se encuentra al principio o al final de una cadena. Formato: BTRIM(<Source string>, [<String to delete>]) Ejemplo: Borrar 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: -- 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 va precedido del título de los mismos ("Sr.", "Sra." o "Srta."). El siguiente código SQL se utiliza para: - elimine 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 | 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: -- 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 eliminar 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 | REDACCIÓN | DRAF | Galteur | Galteur | FOURMALTE | FOURMALTE | BENUR | BEN |
TRIM TRIM 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: -- 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 reemplaza una cadena por otra. Formato: OVERLAY(<Source string> PLACING <String to replace> FROM <Start position> [FOR <Length>]) Ejemplo: Para sustituir "Verde" por "Rojo" se utiliza el siguiente código SQL: SELECT OVERLAY('Green apple' PLACING 'Red' FROM 7) FROM Product SUSTITUIR REPLACE 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: -- 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 REVERSE devuelve una cadena de caracteres en la que el orden de los caracteres es el orden inverso de la cadena inicial. Formato: TRADUCIR TRANSLATE 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: -- 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 "à" por el carácter "a".
- el carácter "ù" por el carácter "u".
SELECT TRANSLATE(MyControl, 'éèàù', 'eeau')
FROM MyTable CONCAT CONCAT concatena varias cadenas juntas. Formato: 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: GROUP_CONCAT(<Column name> SEPARATOR <Separator>) donde: - representa el elemento que contiene los valores a agrupar.
- 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 utiliza para concatenar cadenas no nulas de una lista de valores. Formato: 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: -- 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) REPETIR 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: 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: -- 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 N caracteres de espacio.
Formato: TO_CHAR TO_CHAR se utiliza para convertir en una cadena de caracteres.: - una hora de cita,
- un valor numérico.
Formato: 1. Convertir un valor de fecha y hora: TO_CHAR(<DateTime value>, <DataTime format> [, <DateTime options>]) En esta sintaxis: - 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') from 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 cuyo segundo corresponde al separador de grupo (entre mil y cien por ejemplo).
Ejemplo: 'NLS_DATE_LANGUAGE= francés , 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 us'"
- "NLS_NUMERIC_CHARACTERS ='dg'": 'dg' es una cadena de 2 caracteres cuyo primero corresponde al separador decimal y cuyo segundo corresponde 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: 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 . Observación: El resultado depende del personaje actual set. CDH CHR se utiliza para convertir un código ASCII (entero) en un carácter. 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 . 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 carácter módulo 256.
ELENCO CAST se utiliza para convertir un dato de un tipo a otro.- representa el valor a convertir.
- representa el nuevo tipo en el que se convierte la expresión. Los tipos disponibles son:
| | CHARACTER | Cadena de caracteres | CHARACTER(Tamaño) | String of size | VARCHAR(Tamaño) | String of size | CHARACTER VARYING(Tamaño) | String of size | CHAR VARYING(Tamaño) | String of size | NVARCHAR(Tamaño) | Unicode string on size | VARCHAR(Tamaño) BINARY | Binary string of size | BINARY(Tamaño) | Binary string of size | VARBINARY(Tamaño) | Binary string of 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: 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 está escrita en mayúsculas y todas las demás letras están escritas en minúsculas..
Formato:Ejemplo: INITCAP ('grEat Weather today') Este código devuelve: 'Hace Buen Clima'. LOWER convierte una expresión a minúsculas. LOWER no se puede utilizar en una fuente de datos de Access. Formato: 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 a mayúsculas. UPPER no se puede utilizar en una fuente de datos de Access. Formato: 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: 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 de caracteres actual.Formato: 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 se puede utilizar en todos los tipos de fuentes de datos, excepto las fuentes de datos de Oracle.. Para las fuentes de datos de Oracle, utilice LENGTH . Formato: 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 solo se puede utilizar en una fuente de datos de Oracle. Formato: 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 solo se puede utilizar en una fuente de datos Oracle o en una fuente de datos que admita el estándar SQL-92. Formato: 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: FIELD(String to Find, String1, String2, ...) ENCONTRAR_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: 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 una cadena de caracteres 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 se puede utilizar en una fuente de datos HFSQL Classic o SQL Server. Formato: 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 | '%MI%' | '%MI_' | '%ARKANSAS%' | MONTPELLIER | 6 | 10 | 0 | PARÍS | 0 | 0 | 2 | TARBES | 5 | 5 | 2 | TOULOUSE | 8 | 0 | 0 | VIENA | 3 | 0 | 0 |
POSICIÓN devuelve la posición de una cadena de caracteres en una expresión. Formato: 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
CONTAR devuelve: - 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: 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: 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 archivo. 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: 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 más bajo de los valores no nulos encontrados en un elemento para todos los registros seleccionados en el archivo. Formato: 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 devuelve: - 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: 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 ítem manejado por SUM no debe corresponder al 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 CADA es una función agregada (como SUMA por ejemplo), lo que significa que la función actúa sobre un grupo de datos y devuelve un valor. TODOS regresan: - 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: 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 se puede utilizar en una fuente de datos Oracle o PostgreSQL. Formato: 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 s devueltos por TOP se seleccionarán según su número Record .
- Tienes la posibilidad 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 solo se puede utilizar en una fuente de datos HFSQL. Formato: 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 s devueltos por BOTTOM se seleccionarán según su número Record .
- Tienes la posibilidad de pasar un parámetro a
ABAJO. El parámetro puede ser: LÍMITE LIMIT devuelve los primeros n registros del resultado de la consulta. LIMIT no se puede utilizar en una fuente de datos Oracle o PostgreSQL. Formato: 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 s devueltos por TOP se seleccionarán según su número Record .
- Tienes la posibilidad de pasar un parámetro a
LIMIT. 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 la cadena de caracteres corresponde a una cadena vacía (""), ASCII devuelve 0. Formato: -- 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: -- 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: 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: 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: 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 SOUNDEX y SOUND LIKE devuelven la representación fonética de una cadena de caracteres (basada en un algoritmo en inglés). Formato: SOUNDEX(String)
SOUND LIKE(String) Ejemplo: El siguiente código SQL se utiliza para listar los clientes cuyo nombre corresponde fonéticamente 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 SOUND2 LIKE devuelven la representación fonética de una cadena de caracteres (basada en un algoritmo cercano al francés). Formato: SOUNDEX2(String)
SOUND2 LIKE(String) Ejemplo: El siguiente código SQL se utiliza para listar los clientes cuya ciudad corresponde fonéticamente a "Montpellier": SELECT CUSTOMER.CityName
FROM CUSTOMER
WHERE SOUNDEX2(CUSTOMER.CityName) = SOUNDEX2('Montpellier') SELECT CUSTOMER.CityName
FROM CUSTOMER
WHERE CUSTOMER.CityName SOUND2 LIKE 'Montpellier' ADD_MONTHS se utiliza para agregar varios meses a una fecha específica. Formato: 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 LAST_DAY se utiliza para averiguar la fecha del último día del mes especificado. Formato: 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, lo que significa un número incluido entre 1 y 31. Formato:
DAYOFMONTH DAYOFMONTH devuelve el día del mes (incluido entre 1 y 31). Formato:
DAYOFWEEK DAYOFWEEK devuelve el día de la semana (1 para el domingo, 2 para el lunes, etc.). Formato:
DAYOFYEAR DAYOFYEAR devuelve el día del año (incluido entre 1 y 366). Formato:
MES DE MES EOMONTH devuelve el último día del mes de la fecha especificada. Formato: 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: 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 de fecha y hora). Formato:
GETDATE GETDATE devuelve la hora local del servidor (en formato de fecha y hora). Formato:
ES UNA BUENA IDEA. GETUTCDATE devuelve la hora UTC del servidor (en formato de fecha y hora). Formato:
DATEADD DATEADD agrega un valor a la fecha de inicio y devuelve la nueva fecha. Formato: 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: 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 número entero correspondiente a la parte solicitada de la fecha y hora especificada. Formato: 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 de fecha y hora que corresponde a los elementos especificados. Formato: DATETIMEFROMPARTS(Year, Month, Day, Hours, Minutes, Seconds, Milliseconds)
DATEFROMPARTS DATEFROMPARTS devuelve un valor de fecha que corresponde a los elementos especificados. Formato: DATETIMEFROMPARTS(Year, Month, Days) MONTHS_BETWEEN se utiliza para averiguar el número de meses entre dos fechas específicas. Formato: 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 NEW_TIME se utiliza para averiguar una fecha después de convertir su zona horaria. Formato: NEW_TIME(Date, Time Zone 1, Time Zone 2) Ejemplo: SELECT NEW_TIME('200311010145', 'AST', 'MST') AS NTI
FROM CUSTOMER Observación: Si las zonas horarias corresponden a una cadena vacía (""), el resultado será un valor DateTime a 0. NEXT_DAY se utiliza para averiguar el primer día de la semana siguiente a la fecha especificada o al día especificado. Formato: Ejemplo: SELECT NEXT_DAY('20071007','Sunday') AS NXD
FROM CUSTOMER ROUND se utiliza para redondear la fecha al formato especificado. Formato: Ejemplo: SELECT ORDDATE,
ROUND(ORDDATE,'YYYY') AS TR
FROM ORDERS SYSDATE se utiliza para conocer la fecha y hora actuales. Formato: Ejemplo: SELECT SYSDATE AS SY FROM CUSTOMER WHERE CUSTOMERID=1 TRUNC se utiliza para truncar la fecha al formato especificado. Formato: 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: "Yo", "IY", "IY", "IYYA": 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: Ejemplo: SELECT Date, ISDATE(Date) FROM ORDER WHERE OrderID=50 COALESCE se utiliza para encontrar la primera expresión no nula entre sus argumentos.. Formato: COALESCE(Param1, Param2, ...) Ejemplo: SELECT COALESCE(hourly_wage, salary, commission) AS Total_Salary FROM wages MEJOR GREATEST devuelve el mayor valor de los elementos pasados como parámetro. Formato: GREATEST(Param1, Param2, ...) EL MENOS MENOS devuelve el valor más bajo de los elementos pasados como parámetro. Formato: LEAST(Param1, Param2, ...) NVL se utiliza para reemplazar 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: 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: NULLIF(expression1, expression2) DECODE se utiliza para averiguar el modo de funcionamiento de una declaración IF .. THEN .. ELSE. Formato: 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 CASE se utiliza para averiguar el modo de funcionamiento de una declaración IF .. THEN .. ELSE. Formato: 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 elemento corresponde a "3" , devuelve "cuatro" si el elemento 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 MATCH CONTRA se utiliza para averiguar la pertinencia del Record durante una búsqueda de texto completo. Formato: MATCH(List of items) AGAINST [ALL] Value Donde: - La lista de elementos corresponde a la lista de elementos del índice separados por comas (el orden de los elementos no es importante)
- El valor corresponde al valor buscado en los diferentes artículos.. 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:
| | Elemento | 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 del signo "+". | La palabra especificada es obligatoria. Ejemplo: "+WINDEV" busca los textos que contienen necesariamente "WINDEV". | Palabra precedida del signo "-". | El texto no debe contener la palabra especificada. Ejemplo: "-Índice" busca los textos que no contienen "Índice". | Una palabra precedida del 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 menores que " es distinto de 0, no se buscarán las palabras encerradas entre comillas de tamaño inferior al especificado. | Una palabra seguida del signo "*" | El tipo de búsqueda realizada es "Empieza por" la palabra especificada. | [ALL] se utiliza para forzar la sustitución de 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 verificació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: 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: 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: 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 concreto. Por lo tanto, "\r " corresponde a un retorno de carro y "\n" a una envoltura 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 "ES JSON xxx" se utilizan para determinar si un elemento lo 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: IS [NOT] JSON [OBJECT|ARRAY|SCALAR|VALUE] (expression) La Command 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 SQL "JSON_VALOR" Command obtiene el valor de un elemento contenido en el elemento JSON. Formato: 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 SQL "JSON_QUERY" Command extrae un objeto o un array de una cadena JSON. Formato: 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 SQL "JSON_EXISTS" Command permite get los registros con un elemento JSON que contiene un valor determinado.
Formato: 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 SQL "JSON_OBJECT" Command devuelve un objeto JSON a partir 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 SQL "JSON_ARRAY" Command 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…
|
|
|