versión 11.1 (Modificado)
Las tablas en esta sección muestran los operadores de comparación aplicados a expresiones de tipo cadena, numérico, fecha, hora y puntero. Una expresión que utiliza un operador de comparación devuelve un valor booleano, TRUE o FALSE.
Comparaciones de cadenas
Operación | Sintaxis | Devuelve | Expresión | Valor |
Igualdad | Cadena= Cadena | Booleano | "abc" = "abc" | True |
"abc" = "abd" | False | |||
Desigualdad | Cadena# Cadena | Booleano | "abc" # "abd" | True |
"abc" # "abc" | False | |||
Mayor que | Cadena> Cadena | Booleano | "abd" > "abc" | True |
"abc" > "abc" | False | |||
Menor que | Cadena< Cadena | Booleano | "abc" < "abd" | True |
"abc" < "abc" | False | |||
Mayor que o igual a | Cadena>= Cadena | Booleano | "abd" >= "abc" | True |
"abc" >= "abd" | False | |||
Menor que o igual a | Cadena<= Cadena | Booleano | "abc" <= "abd" | True |
"abd" <= "abc" | False | |||
Contiene palabra | Cadena% Cadena | Booleano | "Alpha Bravo" % "Bravo" | True |
"Alpha Bravo" % "ravo" | False |
Importante: al final de esta sección se ofrece información adicional sobre comparaciones de cadenas.
Operadores numéricos
Operación | Sintaxis | Devuelve | Expresión | Valor |
Igualdad | Número = Número | Booleano | 10 = 10 | True |
10 = 11 | False | |||
Desigualdad | Número # Número | Booleano | 10 #11 | True |
10 # 10 | False | |||
Mayor que | Número > Número | Booleano | 11 > 10 | True |
10 > 11 | False | |||
Menor que | Número < Número | Booleano | 10 < 11 | True |
11 < 10 | False | |||
Mayor que o igual a | Número >= Número | Booleano | 11 >= 10 | True |
10 >= 11 | False | |||
Menor que o igual a | Número <= Número | Booleano | 10 <= 11 | True |
11 <= 10 | False |
Comparación de fechas
Operación | Sintaxis | Devuelve | Expresión | Valor |
Igualdad | Fecha= Fecha | Booleano | !1/1/97! =!1/1/97! | True |
!1/20/97! =!1/1/97! | False | |||
Desigualdad | Fecha# Fecha | Booleano | !1/20/97! # !1/1/97! | True |
!1/1/97! # !1/1/97! | False | |||
Mayor que | Fecha> Fecha | Booleano | !1/20/97! > !1/1/97! | True |
!1/1/97! > !1/1/97! | False | |||
Menor que | Fecha< Fecha | Booleano | !1/1/97! < !1/20/97! | True |
!1/1/97! < !1/1/97! | False | |||
Mayor que o igual a | Fecha>= Fecha | Booleano | !1/20/97! >=!1/1/97! | True |
!1/1/97!>=!1/20/97! | False | |||
Menor que o igual a | Fecha<= Fecha | Booleano | !1/1/97!<=!1/20/97! | True |
!1/20/97!<=!1/1/97! | False |
Comparaciones de horas
Operación | Sintaxis | Devuelve | Expresión | Valor |
Igualdad | Hora= Hora | Booleano | ?01:02:03? = ?01:02:03? | True |
?01:02:03? = ?01:02:04? | False | |||
Desigualdad | Hora# Hora | Booleano | ?01:02:03? # ?01:02:04? | True |
?01:02:03? # ?01:02:03? | False | |||
Mayor que | Hora> Hora | Booleano | ?01:02:04? > ?01:02:03? | True |
?01:02:03? > ?01:02:03? | False | |||
Menor que | Hora< Hora | Booleano | ?01:02:03? < ?01:02:04? | True |
?01:02:03? < ?01:02:03? | False | |||
Mayor que o igual a | Hora>= Hora | Booleano | ?01:02:03? >=?01:02:03? | True |
?01:02:03? >=?01:02:04? | False | |||
Menor que o igual a | Hora<= Hora | Booleano | ?01:02:03? <=?01:02:03? | True |
?01:02:04? <=?01:02:03? | False |
Comparaciones de punteros
Con:
` vPtrA y vPtrB apuntan al mismo objeto vPtrA:=->unObjeto vPtrB:=->unObjeto ` vPtrC apunta a otro objeto vPtrC:=->otroObjeto
Operación | Sintaxis | Devuelve | Expresión | Valor |
Igualdad | Puntero= Puntero | Booleano | vPtrA = vPtrB | True |
vPtrA = vPtrC | False | |||
Desigualdad | Puntero# Puntero | Booleano | vPtrA # vPtrC | True |
vPtrA # vPtrB | False |
Más sobre comparaciones de cadenas
Las cadenas se comparan carácter por carácter (excepto en el caso de búsquedas por palabras claves, ver a continuación).
Cuando se comparan cadenas, no se tienen en cuenta las mayúsculas y minúsculas; por lo tanto, "a"="A" devuelve TRUE. Para saber si los caracteres están en mayúsculas o minúsculas, compare sus códigos de caracteres. Por ejemplo, la siguiente expresión devuelve FALSE:
Character code("A") = Character code("a") ` porque 65 no es igual a 97
Cuando se comparan cadenas, los caracteres diacríticos se comparan utilizando la tabla de comparación de caracteres del sistema de su ordenador. Por ejemplo, las siguientes expresiones devuelven TRUE:
"n" = "ñ" "n" = "Ñ" "A"="å" ` etc.
A diferencia de otras comparaciones de cadena, las búsquedas por palabras claves buscan "palabras" en "textos": las palabras se evalúan global e individualmente. El operador % siempre devuelve False si la búsqueda concierne varias palabras o sólo parte de una palabra (por ejemplo, una silaba). Las "palabras" son cadenas de caracteres rodeadas por "separadores," que son los espacios y los caracteres de puntuación. Los números pueden buscarse porque son evaluados como cadenas; sin embargo, los separadores decimales ( . , ) y otros símbolos (moneda, temperatura, etc.) se ignorarán.
"Alpha Bravo Charlie" % "Bravo" ` DevuelveTrue "Alpha Bravo Charlie" % "vo" ` DevuelveFalse "Alpha Bravo Charlie" % "Alpha Bravo" ` Devuelve False "Alpha,Bravo,Charlie" % "Alpha" ` DevuelveTrue "Software y ordenadores" % "comput@" ` DevuelveTrue
Nota: para mayor información sobre las reglas sobre cómo se tienen en cuenta las palabras claves, por favor visite la siguiente dirección: http://www.unicode.org/unicode/reports/tr29/#Word_Boundaries.
El carácter arroba (@) puede utilizarse en toda comparación de cadenas en reemplazo de uno o varios caracteres. Por ejemplo, la siguiente expresión es TRUE:
"abcdefghij" = "abc@"
El carácter arroba debe utilizarse en el segundo operando (la cadena a la derecha del operador) para igualar todo número de caracteres. La siguiente expresión es FALSE, porque la arroba @ se considera como un solo carácter en el primer operando:
"abc@" = "abcdefghij"
La arroba significa "uno o más caracteres o nada". Las siguientes expresiones son TRUE:
"abcdefghij" = "abcdefghij@" "abcdefghij" = "@abcdefghij" "abcdefghij" = "abcd@efghij" "abcdefghij" = "@abcdefghij@" "abcdefghij" = "@abcde@fghij@"
Por otra parte, en cualquier caso, una comparación de cadenas con dos arrobas consecutivas siempre devolverá FALSE. La siguiente expresión es FALSE:
"abcdefghij" = "abc@@fg"
Cuando el operador de comparación es o contiene un símbolo < o >, sólo soporta la comparación con un solo carácter comodín al final del operando:
"abcd" <= "abc@" `Comparación válida "abcd" <= "abc@ef" `Comparación no válida
Consejo
Si quiere ejecutar comparaciones o búsquedas utilizando @ como un carácter (y no como un comodín), tiene dos opciones:
Utilice la instrucción Character code (At sign).
Imagine, por ejemplo, que quiere saber si una cadena termina con el carácter @.
- la siguiente expresión (si $
vsValorno está vacía) siempre es TRUE:
($vsValor[[Length($vsValor)]]="@")
- la siguiente expresión se evaluará correctamente:
(Character code($vsValor[[Length($vsValor)]])#64)
Utilice la opción "Considerar @ como un carácter en búsquedas y ordenaciones", accesible utilizando la caja de diálogo de Preferencias.
Esta opción le permite definir cómo se interpreta el carácter @ cuando se incluye en una cadena de caracteres. Como tal, puede influir en cómo los operadores de comparación se utilizan en Query u Order By. Para mayor información, consulte el Manual de Diseño.
Ver también
Operadores, Operadores de bits, Operadores de fechas, Operadores de horas, Operadores de imágenes, Operadores lógicos, Operadores numéricos.