Función MAP( )
Regresa un valor lógico que indica si una cadena de caracteres coincide con una cadena de formato específico que contiene caracteres comodín, caracteres literales, o ambos.
Sintaxis
MAP(cadena; formato)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
cadena |
carácter |
El campo, la expresión o el valor literal que se debe probar en busca de coincidencias. |
formato |
carácter |
El patrón de datos o la cadena de caracteres que desea comparar con la cadena. El formato puede tener caracteres comodín, caracteres literales o una combinación de ambos: "\9\9\9-999-9999" Se admiten los siguientes caracteres comodín:
|
Salida
Lógico. Devuelve T (verdadero) si se encuentra una coincidencia, y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Patrones de búsqueda simples
Devuelve T:
MAP("ABC Plumbing"; "xxx")
Devuelve F (la cadena solo tiene 3 números cuando se necesita un mínimo de 4):
MAP("045"; "9999")
Escape de un comodín
Si el objetivo es devolver T solo para los valores que comienzan con el carácter literal "X", seguido de una segunda letra, el parámetro formato "\XX" se asegura de que el primer carácter "X" del parámetro se interprete de manera literal y no como un comodín.
Devuelve T:
MAP("XA-123"; "XX")
MAP("GC-123"; "XX")
MAP("XA-123"; "\XX")
Devuelve F:
MAP("GC-123"; "\XX")
Campos y patrones
Devuelve T para todos los registros con números de facturas que estén conformados o comiencen con dos letras seguidas de cinco números. De lo contrario, devuelve F:
MAP(Número_de_factura; "XX99999")
Devuelve T para todos los registros con números de factura que coinciden totalmente con "AB12345" o que comienzan con "AB12345". De lo contrario, devuelve F:
MAP(Número_de_factura; "AB12345")
Devuelve T para todos los registros con números de facturas que contengan o comiencen con las letras "AB" seguidas de cinco números. De lo contrario, devuelve F:
MAP(Número_de_factura; "AB99999")
Devuelve T para todos los registros que no coinciden con el formato estándar de los números de seguridad social en el campo SSN. De lo contrario, devuelve F:
NOT MAP(SSN; "999-99-9999")
Ejemplos avanzados
Extracción de registros con códigos de producto de 10 caracteres y la combinación de caracteres "859-" al principio
Utilice una sentencia IF y la función MAP( ) para extraer únicamente los registros con códigos de producto de al menos 10 caracteres de longitud y que tengan los caracteres iniciales“859-”:
EXTRACT RECORD IF MAP(Código_de_producto; "85\9-999999") TO "Códigos_largos_859"
Observaciones
Cuándo usar MAP( )
Use la función MAP( ) para buscar patrones o formatos particulares en datos alfanuméricos. Los patrones o formatos pueden estar conformados por caracteres comodín, caracteres literales o una combinación de ambos.
Coincidir mayúsc.-minúsc.
La función MAP( ) distingue entre mayúsculas y minúsculas al comparar dos caracteres literales. Por ejemplo, "a" no es lo mismo que "A".
Si cadena incluye datos de caracteres con uso incoherente de mayúsculas y minúsculas, puede utilizar la función UPPER( ) para convertir los valores a un uso coherente de mayúsculas y minúsculas antes de usar MAP( ).
Por ejemplo:
MAP(UPPER(Número_de_factura); "AB99999")
Coincidencia parcial
MAP( ) admite la coincidencia parcial en una situación pero no en la otra.
La coincidencia parcial en MAP( ) no se ve afectada por la opción Comparaciones de caracteres exactos (SET EXACT ON/OFF).
Admite la coincidencia parcial
La coincidencia parcial se admite si el valor de formato es más corto que el valor de la cadena.
Devuelve T, porque el formato tiene 7 caracteres y la cadena tiene 9 caracteres:
MAP("AB1234567"; "AB99999")
Nota
Para devolver T (verdadero), el valor de formato debe aparecer al principio del valor de la cadena.
No se admite la coincidencia parcial
La coincidencia parcial no se admite si el valor de formato es más largo que el valor de la cadena.
Devuelve F, porque el formato tiene 7 caracteres y la cadena tiene 6 caracteres:
MAP("AB1234", "AB99999")
Si el formato es más largo que la cadena, el resultado es siempre Falso.
Justificación de los espacios en blanco
Los espacios en blanco se tratan como caracteres y se pueden indicar de dos maneras:
- coincidencia con espacios en blanco literalmente, por medio de la inclusión de espacios en blanco en el valor formato en la posición adecuada
- uso del comodín "?" , que coincide con cualquier carácter, incluidos los espacios en blanco
Si es necesario, puede utilizar las funciones TRIM( ), LTRIM( ) o ALLTRIM( ) para quitar los espacios en blanco al principio o al final de la cadena. De esta forma, se asegurará de comparar únicamente los caracteres de texto y los espacios internos.
Concatenar campos
Puede concatenar dos o más campos en la cadena si desea buscar en más de un campo de una tabla. Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final de los campos individuales, a menos que utilice la función ALLTRIM( ) para quitarlos.