AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / Editores / Editor de consultas / SQL
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
Las siguientes funciones SQL pueden utilizarse en las consultas escritas en código SQL (clasificadas por tema):
  • extraer caracteres:
  • borrar caracteres:
  • personajes sustitutos:
  • fusionar cadenas:
  • relleno de la cadena:
  • convertir en cadena:
  • cambiar el caso de una cadena:
  • longitud de la cadena:
  • LENy LONGITUD
  • CHARACTER_LENGTH, CHAR_LENGTH y BYTE_LENGTH
  • posición del string:
  • 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:
  • Código ASCII
  • Miscelánea
  • phonetic
  • gestión de datos
  • Funciones de comparison
  • Declaración condicional
  • "Búsqueda de"texto completo
  • Verificación
  • Expresión regular
  • Funciones y operadores Bitwise
  • Operadores de JSON

Para más detalles sobre las funciones SQL, consulte la documentación específica de SQL.
Para conocer todos los comandos de SQL (funciones, cláusulas, operadores, etc.) que pueden utilizarse en una consulta SQL gestionada por HFSQL, consulte Comandos que se pueden utilizar en una consulta SQL gestionada por HFSQL.
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.).
Funciones SQL

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.
Conectores Nativos Esta función no se puede utilizar en una fuente de datos PostgreSQL.
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).
-- Deleting characters
SELECT LTRIM(Name, 'Ms.')
FROM CUSTOMER
-- Deleting the space character
SELECT LTRIM(Name)
FROM CUSTOMER
En este ejemplo:
Si el nombre del cliente es:La cadena devuelta es:
'Srta. DOE"DOE
'Sr. "CLARKCLARK.
'La señora. DavisDavis".

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.
GalteurGalteur
"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:
REVERSE(Initial string)

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])
Conectores Nativos CONCAT no es compatible con Sybase.

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íaNombreDía
Entre semanalunes
Entre semanamartes
Entre semanamiércoles
Entre semanajueves
Entre semanaviernes
Fin de semanasábado
Fin de semanadomingo
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:
SPACE(N)
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:
CHAR(<ASCII Code>)
<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.
CHR(<ASCII Code>)
<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.
CAST(Expression AS Type)
  • <Expresión> representa el valor a convertir.
  • <Type> representa el nuevo tipo en el que se convierte la expresión. Los tipos disponibles son:
CHARACTERCadena 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) BINARYBinary string on size
BINARY(Tamaño)Binary string on size
VARBINARY(Tamaño)Binary string on size
BLOBMemo binario
CLOBNota de texto
TEXTONota de texto
NCLOBNota de Unicode
NTEXTNota de Unicode
NUMBER(Precisión)Integro
NUMBER(Precisión, escala)Integro
DECIMAL(Precisión)Real
DECIMAL(Precisión, escala)Real
TINYINT UNSIGNEDUn entero de 1 byte sin firmar
SMALLINT UNSIGNEDUn entero de 2 bytes sin firmar
INTEGER UNSIGNEDUn entero de 4 bytes sin firmar
BIGINT UNSIGNEDUn entero de 8 bytes sin firmar
TINYINTFirmado un entero de 1 byte
SMALLINTFirmado un entero de 2 bytes
INTEGERFirmado un entero de 4 bytes
BIGINTFirmado un entero de 8 bytes
FLOAT4 bytes reales
REAL8 bytes reales
DOUBLE PRECISION8 bytes reales
MONEYMoneda
FECHAFECHA
FECHAFecha y hora
TIEMPOmomento
El resultado de la función es el valor convertido.
Ejemplo:
CAST(126.12 AS INTEGER)
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:
INITCAP(<String>)
Ejemplo:
INITCAP ('grEat Weather today')
Este código devuelve: 'Hace Buen Clima'.

LOWER

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

SUPERIOR

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

LONGITUD/LONGITUD

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

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:
LEN(Initial Expression)
Ejemplo: El siguiente código SQL se utiliza para averiguar el tamaño de los nombres de los clientes:
SELECT LEN(Name)
FROM CUSTOMER

LONGITUD

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

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

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

POSICIÓN

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

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

AVG

AVG calcula:
  • 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
-- Equivalent to:
-- SELECT MAX(DISTINCT Salary)
-- FROM EMPLOYEE

MÍN

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
-- Equivalent to:
-- SELECT MIN(DISTINCT Salary)
-- FROM EMPLOYEE

SUMA

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

ARRIBA

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

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:
CURRENT_USER()
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:
SYSTEM_USER()
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:
USER_NAME()
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, SUENA COMO

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..
Conectores Nativos SOUND LIKE no está soportado por Oracle, MySQL, Progress o Informix.
SOUNDEX no es compatible con Informix.

SOUNDEX2, SONIDO2 COMO

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'
Conectores Nativos SOUNDEX2 y SOUNDEX2 LIKE no son compatibles con Oracle, SQL Server, MySQL, Progress, Informix o DB2..

ADD_MONTHS

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
Conectores Nativos ADD_MONTHS no es soportado por SQL Server, MySQL, Informix, DB2 o Sybase.

ÚLTIMO DÍA

ÚLTIMO DÍA se utiliza para averiguar la fecha del último día del mes especificado.
Formato de uso:
LAST_DAY(Date)
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
Conectores Nativos Informix, DB2 o Sybase no soportan LAST_DAY.

DÍA

DÍA devuelve el día del mes, es decir, un número incluido entre 1 y 31.
Formato de uso:
DAY(Date)

DAYOFMONTH

DÍA MES devuelve el día del mes (incluido entre 1 y 31).
Formato de uso:
DAYOFMONTH(Date)

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:
DAYOFWEEK(Date)

DAYOFYEAR

DÍA DEL AÑO devuelve el día del año (incluido entre 1 y 366).
Formato de uso:
DAYOFYEAR(Date)

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:
YEAR date
MONTH date
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.

FECHA_ACTUAL

CURRENT_TIMESTAMP devuelve la hora local del servidor (en formato datetime).
Formato de uso:
CURRENT_TIMESTAMP()

GETDATE

GETDATE devuelve la hora local del servidor (en formato datetime).
Formato de uso:
GETDATE()

ES UNA BUENA IDEA.

GETUTCDATE devuelve la hora UTC del servidor (en formato datetime).
Formato de uso:
GETUTCDATE()

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 parteAbreviaturas
    añoyy, yyyy
    trimestreqq, q
    mesmm, m
    día del añody, y
    día dd, d
    semanawk, ww
    entre semanadw, en
    horahh
    minuto mi, n
    segundo ss, s
    milisegundoms
    microsegundomcs
    nanosegundons
  • 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 parteAbreviaturas
    añoyy, yyyy
    trimestreqq, q
    mesmm, m
    día del añody, y
    día dd, d
    semanawk, ww
    entre semanadw, en
    horahh
    minuto mi, n
    segundo ss, s
    milisegundoms
    microsegundomcs
    nanosegundons
  • 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 parteAbreviaturas
    añoyy, yyyy
    trimestreqq, q
    mesmm, m
    día del añody, y
    día dd, d
    semanawk, ww
    entre semanadw, en
    horahh
    minuto mi, n
    segundo ss, s
    milisegundoms
    microsegundomcs
    nanosegundons
  • Fecha de inicio: fecha o fecha-hora utilizada.

FECHA DE LAS PARTES

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

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,
-- Number of months divided by 12 in real: number of years
CAST(MONTHS_BETWEEN(SYSDATE,CUSTOMER.DATE_OF_BIRTH)/12 AS FLOAT) AS Age
FROM
CUSTOMER
WHERE
-- customers over 18 only
Age >= 18
Conectores Nativos MONTHS_BETWEEN no es compatible con MySQL, Informix, DB2 o Sybase.

NEW_TIME

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.
Conectores Nativos NEW_TIME no es compatible con SQL Server, MySQL, Progress, Informix, DB2 o Sybase.

PRÓXIMO_DÍA

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:
NEXT_DAY(Date, Day)
Ejemplo:
SELECT NEXT_DAY('20071007','Sunday') AS NXD
FROM CUSTOMER
Conectores Nativos NEXT_DAY no es compatible con SQL Server, MySQL, Progress, Informix, DB2 o Sybase..

RONDA

RONDA se utiliza para redondear la fecha al formato especificado.
Formato de uso:
ROUND(Date, Format)
Ejemplo:
SELECT ORDDATE,
ROUND(ORDDATE,'YYYY') AS TR
FROM ORDERS
Conectores Nativos ROUND no está soportado por Progress, DB2 y Sybase.

SYSDATE

SÍDATE se utiliza para averiguar la fecha y la hora actuales.
Formato de uso:
SYSDATE
Ejemplo:
SELECT SYSDATE AS SY FROM CUSTOMER WHERE CUSTOMERID=1
Conectores Nativos SYSDATE no es compatible con Informix y Sybase.

TRUNC

TRUNC se utiliza para truncar la fecha al formato especificado.
Formato de uso:
TRUNC(Date, Format)
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
Conectores Nativos TRUNC no es soportado por SQL Server, MySQL, Progress, DB2 y Sybase.

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:
ISSDATE(Expression)
Ejemplo:
SELECT Date, ISDATE(Date) FROM ORDER WHERE OrderID=50

COALESCE

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
Conectores Nativos COALESCE no cuenta con el apoyo de Progress o Informix.
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, IFNULL, ISNULL

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

NULLIF devuelve un valor NULL si las dos expresiones especificadas son iguales.
Formato de uso:
NULLIF(expression1, expression2)

DECODE

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
Conectores Nativos DECODE no es compatible con SQL Server, MySQL, Progress, Informix, DB2, Sybase y ACCESS.

MAY/MIN

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

PARTIDO CONTRA

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 palabraSe buscará la palabra especificada. La pertinencia aumentará si el texto contiene esta palabra.
Ejemplo: "WINDEV" busca "WINDEV".
Dos palabras separadas por un espacio en blancoBusca 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 comillasLas 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:
MD5(String)
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:
SHA(String)

SHA1(String)
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:
string REGEXP expression
string RLIKE expression
string ~ expression
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" ]
Versión mínima requerida
  • Versión 11
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 21/03/2023

Señalar un error o enviar una sugerencia | Ayuda local