4D v12.4Operadores de comparación |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
Operadores de comparación
|
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.
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 |
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 |
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 |
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 |
Character code("A")=Character code("a") ` porque 65 no es igual a 97
"n"="ñ"
"n"="Ñ"
"A"="å"
` etc.
"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.
"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:
($vsValor≤Length($vsValor)≥="@")
- la siguiente expresión se evaluará correctamente:
(Character code($vsValor≤Length($vsValor)≥)#64)
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.
Producto: 4D
Tema: Operadores
Operadores
Operadores de bits
Operadores de fechas
Operadores de horas
Operadores de imágenes
Operadores lógicos
Operadores numéricos