Operadores de comparación

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

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ónSintaxisDevuelveExpresiónValor
IgualdadCadena= CadenaBooleano"abc" = "abc"True
"abc" = "abd"False
DesigualdadCadena# CadenaBooleano"abc" # "abd"True
"abc" # "abc"False
Mayor queCadena> CadenaBooleano "abd" > "abc"True
"abc" > "abc"False
Menor queCadena< CadenaBooleano"abc" < "abd"True
"abc" < "abc"False
Mayor que o igual aCadena>= CadenaBooleano "abd" >= "abc"True
"abc" >= "abd"False
Menor que o igual aCadena<= CadenaBooleano "abc" <= "abd"True
"abd" <= "abc"False
Contiene palabraCadena% CadenaBooleano"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ónSintaxisDevuelveExpresiónValor
IgualdadNúmero = NúmeroBooleano10 = 10True
10 = 11False
DesigualdadNúmero # NúmeroBooleano10 #11True
10 # 10False
Mayor queNúmero > NúmeroBooleano11 > 10True
10 > 11False
Menor queNúmero < NúmeroBooleano10 < 11True
11 < 10False
Mayor que o igual aNúmero >= NúmeroBooleano11 >= 10True
10 >= 11False
Menor que o igual aNúmero <= NúmeroBooleano10 <= 11True
11 <= 10False

Comparación de fechas

OperaciónSintaxisDevuelveExpresiónValor
IgualdadFecha= FechaBooleano!1/1/97! =!1/1/97!True
!1/20/97! =!1/1/97!False
DesigualdadFecha# FechaBooleano!1/20/97! # !1/1/97!True
!1/1/97! # !1/1/97!False
Mayor queFecha> FechaBooleano!1/20/97! > !1/1/97!True
!1/1/97! > !1/1/97!False
Menor queFecha< FechaBooleano!1/1/97! < !1/20/97!True
!1/1/97! < !1/1/97!False
Mayor que o igual aFecha>= FechaBooleano!1/20/97! >=!1/1/97!True
!1/1/97!>=!1/20/97!False
Menor que o igual aFecha<= FechaBooleano!1/1/97!<=!1/20/97!True
!1/20/97!<=!1/1/97!False

Comparaciones de horas

OperaciónSintaxisDevuelveExpresiónValor
IgualdadHora= HoraBooleano?01:02:03? = ?01:02:03?True
?01:02:03? = ?01:02:04?False
DesigualdadHora# HoraBooleano?01:02:03? # ?01:02:04?True
?01:02:03? # ?01:02:03?False
Mayor queHora> HoraBooleano?01:02:04? > ?01:02:03?True
?01:02:03? > ?01:02:03?False
Menor queHora< HoraBooleano?01:02:03? < ?01:02:04?True
?01:02:03? < ?01:02:03?False
Mayor que o igual aHora>= HoraBooleano?01:02:03? >=?01:02:03?True
?01:02:03? >=?01:02:04?False
Menor que o igual aHora<= HoraBooleano?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ónSintaxisDevuelveExpresiónValor
IgualdadPuntero= PunteroBooleanovPtrA = vPtrBTrue
vPtrA = vPtrCFalse
DesigualdadPuntero# PunteroBooleanovPtrA # vPtrCTrue
vPtrA # vPtrBFalse

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 $

vsValor 
no 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.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente