4D v12.4Operadores de Comparação |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
Operadores de Comparação
|
Operação | Sintaxe | Devolve | Expressão | Valor |
Igualdade | Cadeia= Cadeia | Booleano | "abc" = "abc" | True |
"abc" = "abd" | False | |||
Desigualdade | Cadeia# Cadeia | Booleano | "abc" # "abd" | True |
"abc" # "abc" | False | |||
Maior que | Cadeia> Cadeia | Booleano | "abd" > "abc" | True |
"abc" > "abc" | False | |||
Menor que | Cadeia< Cadeia | Booleano | "abc" < "abd" | True |
"abc" < "abc" | False | |||
Maior que ou igual a | Cadeia>= Cadeia | Booleano | "abd" >= "abc" | True |
"abc" >= "abd" | False | |||
Menor que ou igual a | Cadeia<= Cadeia | Booleano | "abc" <= "abd" | True |
"abd" <= "abc" | False | |||
Contém palavra | Cadeia% Cadeia | Booleano | "Alpha Bravo" % "Bravo" | True |
"Alpha Bravo" % "ravo" | False |
Importante: ao final desta seção se oferece informação adicional sobre comparações de cadeias.
Operação | Sintaxe | Devolve | Expressão | Valor |
Igualdade | Número = Número | Booleano | 10 = 10 | True |
10 = 11 | False | |||
Desigualdade | Número # Número | Booleano | 10 #11 | True |
10 # 10 | False | |||
Maior 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 | |||
Maior que ou 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 |
Operação | Sintaxe | Devolve | Expressão | Valor |
Igualdade | Data= Data | Booleano | !1/1/97! =!1/1/97! | True |
!1/20/97! =!1/1/97! | False | |||
Desigualdade | Data# Data | Booleano | !1/20/97! # !1/1/97! | True |
!1/1/97! # !1/1/97! | False | |||
Maior que | Data> Data | Booleano | !1/20/97! > !1/1/97! | True |
!1/1/97! > !1/1/97! | False | |||
Menor que | Data< Data | Booleano | !1/1/97! < !1/20/97! | True |
!1/1/97! < !1/1/97! | False | |||
Maior que ou igual a | Data>=Data | Booleano | !1/20/97! >=!1/1/97! | True |
!1/1/97!>=!1/20/97! | False | |||
Menor que ou igual a | Data<= Data | Booleano | !1/1/97!<=!1/20/97! | True |
!1/20/97!<=!1/1/97! | False |
Operação | Sintaxe | Devolve | Expressão | Valor |
Igualdade | Hora= Hora | Booleano | ?01:02:03? = ?01:02:03? | True |
?01:02:03? = ?01:02:04? | False | |||
Desigualdade | Hora# Hora | Booleano | ?01:02:03? # ?01:02:04? | True |
?01:02:03? # ?01:02:03? | False | |||
Maior 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 | |||
Maior que ou igual a | Hora>= Hora | Booleano | ?01:02:03? >=?01:02:03? | True |
?01:02:03? >=?01:02:04? | False | |||
Menor que ou igual a | Hora<= Hora | Booleano | ?01:02:03? <=?01:02:03? | True |
?01:02:04? <=?01:02:03? | False |
Com:
` vPtrA e vPtrB apontam ao mesmo objeto
vPtrA:=->umObjeto
vPtrB:=->umObjeto
` vPtrC aponta a outro objeto
vPtrC:=->outroObjeto
Operação | Sintaxe | Devolvido | Expressão | Valor |
Igualdade | Ponteiro= Ponteiro | Booleano | vPtrA = vPtrB | True |
vPtrA = vPtrC | False | |||
Desigualdade | Ponteiro# Ponteiro | Booleano | vPtrA # vPtrC | True |
vPtrA # vPtrB | False |
Character code("A")=Character code("a") ` porque 65 não é igual a 97
"n"="ñ"
"n"="Ñ"
"A"="å"
` etc.
"Alpha Bravo Charlie"%"Bravo" ` DevolveTrue
"Alpha Bravo Charlie"%"vo" ` DevolveFalse
"Alpha Bravo Charlie"%"Alpha Bravo" ` Devolve False
"Alpha,Bravo,Charlie"%"Alpha" ` DevolveTrue
"Software e ordenadores"%"comput@" ` DevolveTrue
Nota: para maior informação sobre as regras de como são levadas em consideração as palavras chaves, por favor visite a seguinte direção: http://www.unicode.org/unicode/reports/tr29/#Word_Boundaries.
"abcdefghij"="abc@"
O caractere arroba deve ser utilizado no segundo operando (a cadeia a direita do operador) para igualar todo número de caracteres. A seguinte expressão é FALSE, porque a arroba @ se considera como um só caractere no primeiro operando:
"abc@"="abcdefghij"
A arroba significa “um ou mais caracteres ou nada”. As seguintes expressões são TRUE:
"abcdefghij"="abcdefghij@"
"abcdefghij"="@abcdefghij"
"abcdefghij"="abcd@efghij"
"abcdefghij"="@abcdefghij@"
"abcdefghij"="@abcde@fghij@"
Por outro lado, em qualquer caso, uma comparação de cadeias com duas arrobas consecutivas sempre devolverá FALSE. A seguinte expressão é FALSE:
"abcdefghij"="abc@@fg"
Quando o operador de comparação é ou contém um símbolo < ou >, só é compatível a comparação com um só caractere coringa ao final do operando:
"abcd"<="abc@" `Comparação válida
"abcd"<="abc@ef" `Comparação não válida
Dica: se quer executar comparações ou pesquisas utilizando @ como um caractere (e não como um coringa), tem duas opções:
($vsValor≤Length($vsValor)≥="@")
- a seguinte expressão se avaliará corretamente:
(Character code($vsValor≤Length($vsValor)≥)#64)
Esta opção lhe permite definir como se interpreta o caractere @ quando se inclui em uma cadeia de caracteres. Como tal, ou de influir em como os operadores de comparação se utilizam em Query ou Order By. Para maior informação, consulte o Manual de Desenho.
Produto: 4D
Tema: Operadores
Operadores
Operadores de bit
Operadores de data
Operadores de Hora
Operadores de Imagem
Operadores Lógicos
Operadores Numéricos