Funciones de cadena
En CLEM, puede realizar las siguientes operaciones con cadenas:
- Comparar cadenas
- Crear cadenas
- Acceder a caracteres
En CLEM, una cadena es cualquier secuencia de caracteres que se encuentre entre un par de comillas dobles ("comillas de cadena"
). Los caracteres (CAR
) pueden ser cualquier carácter alfanumérico simple. Se declaran en expresiones CLEM utilizando comillas inversas simples del tipo `
<carácter>`
, como por ejemplo `z`
, `A`
o `2`
. Los caracteres que se encuentran fuera de los límites o los índices negativos de una cadena darán como resultado un comportamiento indefinido.
Nota: Las comparaciones entre cadenas que utilizan y no utilizan retrotracción SQL pueden generar diferentes resultados donde existen espacios finales.
Función | Resultado | Descripción |
---|---|---|
allbutfirst(N, CADENA)
|
Cadena | Devuelve una cadena, que es CADENA sin los N primeros caracteres. |
allbutlast(N, CADENA)
|
Cadena | Devuelve una cadena, que es CADENA sin los últimos caracteres. |
alphabefore(CADENA1, CADENA2)
|
Booleana | Se utiliza para comprobar el orden alfabético de las cadenas. Devuelve verdadero si CADENA1 precede a CADENA2. |
endstring(LONGITUD, CADENA)
|
Cadena | Extrae los últimos N caracteres de la cadena especificada. Si la longitud de la cadena es menor o igual que la longitud especificada, no hay cambios. |
hasendstring(CADENA, SUBCADENA)
|
Entero | Esta función es la misma que isendstring(SUBCADENA, CADENA).
|
hasmidstring(CADENA, SUBCADENA)
|
Entero | Esta función es la misma que ismidstring(SUBCADENA, CADENA) (subcadena incrustada). |
hasstartstring(CADENA, SUBCADENA)
|
Entero | Esta función es la misma que isstartstring(SUBCADENA, CADENA) . |
hassubstring(CADENA, N, SUBCADENA)
|
Entero | Esta función es la misma que issubstring(SUBCADENA, N, CADENA) donde, de forma predeterminada, N tiene el valor 1. |
count_substring(CADENA, SUBCADENA)
|
Entero | Devuelve el número de veces que aparece la subcadena especificada en la cadena. Por ejemplo:
count_substring("foooo.txt", "oo") devuelve 3. |
hassubstring(CADENA, SUBCADENA)
|
Entero | Esta función es la misma que issubstring(SUBCADENA, 1, CADENA) donde N tiene el valor 1 de forma predeterminada. |
isalphacode(CAR)
|
Booleana | Devuelve verdadero si CAR es un carácter en la cadena especificada (normalmente un nombre de campo) cuyo código de carácter es una letra. De lo contrario, esta función devuelve 0. Por ejemplo, isalphacode(producir_núm(1)) . |
isendstring(SUBCADENA, CADENA)
|
Entero | Si la cadena CADENA finaliza con la subcadena SUBCADENA, esta función devuelve el subíndice entero de SUBCADENA en CADENA. En el resto de los casos, esta función devuelve 0. |
islowercode(CAR)
|
Booleana | Devuelve verdadero si CAR es un carácter de una letra minúscula para la cadena especificada (normalmente un nombre de campo). En el resto de los casos, esta función devuelve 0. Por ejemplo, islowercode(``) y islowercode(nombre_país(2)) son ambas expresiones válidas. |
ismidstring(SUBCADENA, CADENA)
|
Entero | Si SUBCADENA es una subcadena de CADENA pero no comienza en el primer carácter de CADENA ni termina en el último, esta función devuelve el subíndice donde dicha subcadena comienza. En el resto de los casos, esta función devuelve 0. |
isnumbercode(CAR)
|
Booleana | Devuelve verdadero si CAR, para la cadena especificada (normalmente un nombre de campo), es un carácter cuyo código de carácter es un número. De lo contrario, esta función devuelve un valor de 0. Por ejemplo, isnumbercode(product_id(2)) . |
isstartstring(SUBCADENA, CADENA)
|
Entero | Si la cadena CADENA comienza con la subcadena SUBCADENA, esta función devuelve el subíndice 1. En el resto de los casos, esta función devuelve un valor de 0. |
issubstring(SUBCADENA, N, CADENA)
|
Entero | Busca la cadena CADENA, a partir del carácter número N, para una subcadena igual a la cadena SUBCADENA. Si la encuentra, esta función devuelve el subíndice entero donde comienza el subcadena coincidente. En el resto de los casos, esta función devuelve 0. Si no se proporciona N, esta función toma el valor 1 de forma predeterminada. |
issubstring(SUBCADENA, CADENA)
|
Entero | Busca la cadena CADENA, a partir del carácter número N, para una subcadena igual a la cadena SUBCADENA. Si la encuentra, esta función devuelve el subíndice entero donde comienza el subcadena coincidente. En el resto de los casos, esta función devuelve 0. Si no se proporciona N, esta función toma el valor 1 de forma predeterminada. |
issubstring_count(SUBCADENA, N, CADENA)
|
Entero | Devuelve el índice de la instancia número N de la SUBCADENA en la CADENA especificada. Si hay menos de N instancias de SUBCADENA, se devuelve 0. |
issubstring_lim(SUBCADENA, N, LÍMINICIAL, LÍMFINAL, CADENA)
|
Entero | Esta función es la misma que issubstring , pero la coincidencia se limita de manera que se inicia en el subíndice LÍMINICIAL (o antes) y finaliza en el subíndice LÍMFINAL (o antes). Las restricciones STARTLIM o ENDLIM se pueden desactivar proporcionando un valor de falso para cada argumento, por ejemplo, issubstring_lim(SUBSTRING, N, falso, falso, STRING) es lo mismo que issubstring . |
isuppercode(CAR)
|
Booleana | Devuelve verdadero si CAR es un carácter de una letra mayúscula. En el resto de los casos, esta función devuelve 0. Por ejemplo, isuppercode(``) y isuppercode(nombre_país(2)) son ambas expresiones válidas. |
last(CAR)
|
Cadena | Devuelve el último carácter CAR de CADENA (que debe tener una longitud de al menos un carácter). |
length(CADENA)
|
Entero | Devuelve la longitud de la cadena CADENA; es decir el número de caracteres que hay en ella. |
locchar(CAR, N, CADENA)
|
Entero | Se utiliza para identificar la ubicación de los caracteres en los campos simbólicos. La función busca en la cadena CADENA el carácter CAR, comenzando la búsqueda en el carácter número N de la CADENA. Esta función devuelve un valor que indica la ubicación (comenzando por N) en la que se encuentra el carácter. Si no se encuentra el carácter, esta función devuelve 0. Si la función tiene un desplazamiento no válido (N) (por ejemplo, un desplazamiento que supera la longitud de la cadena), esta función devuelve $null$ .
Por ejemplo, locchar(`n`, 2, página_web) busca el carácter `n` en el campo con el nombre página_web, comenzando a partir del segundo carácter del valor del campo.
Nota: Asegúrese de utilizar
comillas inversas simples para entrecomillar el carácter especificado. |
locchar_back(CAR, N, CADENA)
|
Entero | Similar a locchar , con la diferencia de que la búsqueda se realiza hacia atrás, comenzando a partir del carácter número N. Por ejemplo, locchar_back(`n`, 9, página_web) realiza búsquedas en el campo página_web comenzando por el noveno carácter y yendo hacia atrás, hacia el inicio de la cadena. Si la función tiene un desplazamiento no válido (por ejemplo, un desplazamiento que va más allá de la longitud de la serie), esta función devuelve $null$ . Lo ideal sería usar locchar_back junto con la función length(<campo>) para utilizar dinámicamente la longitud del valor actual del campo. Por ejemplo, locchar_back(`n`, (length(página_web)), página_web) . |
lowertoupper(CAR)
lowertoupper(CADENA)
|
CAR o Cadena | La entrada puede ser una cadena o un carácter, y se utiliza en esta función para devolver un nuevo elemento del mismo tipo, con los caracteres en minúscula convertidos a sus equivalentes en mayúscula. Por ejemplo, lowertoupper(`a`) , lowertoupper(“Mi cadena”) y lowertoupper(nombre_campo(2)) son todas expresiones válidas. |
coincidencias
|
Booleana | Devuelve verdadero si una cadena coincide con un patrón determinado. El patrón debe ser una cadena literal, no puede ser un nombre de campo que contenga un patrón. Debe utilizarse un signo de cierre de interrogación (?) se puede incluir en el patrón para que coincida exactamente con un carácter, un asterisco (*) coincide con cero o más caracteres. Para que coincida con un asterisco o una interrogación literal (en lugar de utilizarlos como comodines), se puede utilizar una barra inclinada invertida (\) como carácter de escape. |
replace(SUBCADENA, NUEVASUBCADENA, CADENA)
|
Cadena | En la CADENA especificada, sustituye todas las instancias de SUBCADENA con NUEVASUBCADENA. |
replicate (RECUENTO, CADENA)
|
Cadena | Devuelve una cadena que consta de la cadena original copiada el número específico de veces. |
stripchar(CAR,CADENA)
|
Cadena | Permite eliminar determinados caracteres de una cadena o campo. Por ejemplo, puede utilizar esta función para eliminar de los datos símbolos adicionales (como notaciones de moneda) con el fin de obtener un nombre o número simple. Por ejemplo, la sintaxis stripchar(`$`, 'Coste') devuelve un nuevo campo con el signo de dólar eliminado en todos los valores.
Nota: Asegúrese de utilizar
comillas inversas simples para entrecomillar el carácter especificado. |
skipchar(CAR, N, CADENA)
|
Entero | Busca en la cadena CADENA cualquier carácter que no sea CAR, comenzando por el carácter número N. Esta función devuelve una subcadena de enteros que indica el punto en que se encuentra cada uno, o 0 si todos los caracteres a partir del Nson CAR. Si la función tiene un desplazamiento no válido (por ejemplo, un desplazamiento superior a la longitud de la cadena), esta función devuelve $null$ .
locchar se suele utilizar junto con las funciones skipchar para determinar el valor de N (el punto en que comenzar la búsqueda en la cadena). Por ejemplo, skipchar(`s`, (locchar(`s`, 1, "MiCadena")), "MiCadena") . |
skipchar_back(CAR, N, CADENA)
|
Entero | Similar a skipchar , con la diferencia de que la búsqueda se realiza hacia atrás, comenzando a partir del carácter número N. |
startstring(LONGITUD, CADENA)
|
Cadena | Extrae los primeros N caracteres de la cadena especificada. Si la longitud de la cadena es menor o igual que la longitud especificada, no hay cambios. |
strmember(CAR, CADENA)
|
Entero | Equivalente a locchar(CAR, 1, CADENA) . Devuelve una subcadena de enteros que indica el punto en que CHAR aparece por primera vez o bien 0. Si la función tiene un desplazamiento no válido (por ejemplo, un desplazamiento superior a la longitud de la cadena), esta función devuelve $null$ . |
subscrs(N, CADENA)
|
CAR | Devuelve el carácter CAR número N de la cadena de entrada CADENA. Esta función también se puede escribir de forma abreviada como CADENA(N) . Por ejemplo, lowertoupper(“nombre”(1)) es una expresión válida. |
substring(N, LON, CADENA)
|
Cadena | Devuelve una cadena SUBCADENA, que consiste en los caracteres LON de la cadena CADENA, a partir del carácter situado en el subíndice N. |
substring_between(N1, N2, CADENA)
|
Cadena | Devuelve la subcadena de CADENA que comienza en el subíndice N1 y termina en el subíndice N2. |
trim(CADENA)
|
Cadena | Extrae los espacios en blanco iniciales y finales de la cadena especificada. |
trim_start(CADENA)
|
Cadena | Extrae los espacios en blanco iniciales de la cadena especificada. |
trimend(CADENA)
|
Cadena | Extrae los espacios en blanco finales de la cadena especificada. |
unicode_char(NÚM)
|
CAR | La entrada debe ser decimal; no se admiten valores hexadecimales. Devuelve el carácter con el valor Unicode NÚM. |
unicode_value(CAR)
|
NUM | Devuelve el valor Unicode de CAR |
uppertolower(CAR)
uppertolower(CADENA)
|
CAR o Cadena | La entrada puede ser una cadena o un carácter y se utiliza en esta función para devolver un nuevo elemento del mismo tipo, con los caracteres en mayúscula convertidos a sus equivalentes en minúscula. Nota: No olvide especificar las cadenas con comillas dobles y los caracteres con comillas inversas simples. Los nombres de campos simples deben especificarse sin comillas. |