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:
  • LEN y 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
  • Varios
  • phonetic
  • gestión de datos
  • Funciones de comparison
  • Declaración condicional
  • "Búsqueda "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:
  • 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.
Conectores Nativos Esta función no se puede utilizar en una fuente de datos PostgreSQL.
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).
-- 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
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:
-- 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:
DUVALEURDUVAL
REDACCIÓNDRAF
GalteurGalteur
FOURMALTEFOURMALTE
BENURBEN

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

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])
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:
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í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 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:
SPACE(N)
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:
CHAR(<ASCII Code>)
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.
CHR(<ASCII Code>)
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.
CAST(Expression AS Type)
  • representa el valor a convertir.
  • representa el nuevo tipo en el que se convierte la expresión. Los tipos disponibles son:
CHARACTERCadena 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) BINARYBinary string of size
BINARY(Tamaño)Binary string of size
VARBINARY(Tamaño)Binary string of 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:
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:
INITCAP(<String>)
Ejemplo:
INITCAP ('grEat Weather today')
Este código devuelve: 'Hace Buen Clima'.

LOWER

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

SUPERIOR

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

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 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:
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 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

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

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

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

CUENTA

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

AVG

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

MÍN

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

SUMA

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

ARRIBA

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

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:
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:
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:
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

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

SOUNDEX2, SONIDO2 COMO

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

ADD_MONTHS

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

ÚLTIMO DÍA

LAST_DAY se utiliza para averiguar la fecha del último día del mes especificado.
Formato:
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, lo que significa un número incluido entre 1 y 31.
Formato:
DAY(Date)

DAYOFMONTH

DAYOFMONTH devuelve el día del mes (incluido entre 1 y 31).
Formato:
DAYOFMONTH(Date)

DAYOFWEEK

DAYOFWEEK devuelve el día de la semana (1 para el domingo, 2 para el lunes, etc.).
Formato:
DAYOFWEEK(Date)

DAYOFYEAR

DAYOFYEAR devuelve el día del año (incluido entre 1 y 366).
Formato:
DAYOFYEAR(Date)

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:
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 de fecha y hora).
Formato:
CURRENT_TIMESTAMP()

GETDATE

GETDATE devuelve la hora local del servidor (en formato de fecha y hora).
Formato:
GETDATE()

ES UNA BUENA IDEA.

GETUTCDATE devuelve la hora UTC del servidor (en formato de fecha y hora).
Formato:
GETUTCDATE()

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 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:
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 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 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 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)

MESES_ENTRE

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,
-- 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

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

PRÓXIMO_DÍA

NEXT_DAY se utiliza para averiguar el primer día de la semana siguiente a la fecha especificada o al día especificado.
Formato:
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

ROUND se utiliza para redondear la fecha al formato especificado.
Formato:
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

SYSDATE se utiliza para conocer la fecha y hora actuales.
Formato:
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:
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: "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
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:
ISSDATE(Expression)
Ejemplo:
SELECT Date, ISDATE(Date) FROM ORDER WHERE OrderID=50

COALESCE

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

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

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

DECODE

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

MAY/MIN

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

PARTIDO CONTRA

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 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 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 comillasLas 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:
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:
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:
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 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" ]
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: 06/04/2024

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