mas terei que usar substr pra pegar a primeira letra
pois terei nomes :
Arnaldo
Armando
Belicia
Cida
Dores
se usar between não teria uqe fazer isso ???
T
thingol
Por exemplo, digamos que você queira pegar todos os nomes que começam por A, B e C. A consulta seria:
BETWEEN “A” AND “D”
você deve concordar comigo que vai pegar todos os nomes que começam por A, B, C e apenas um nome “D”, que não existe, porque na sua base não devem existir nomes com apenas uma letra.
P
paribe
o que usei e no banco tem o nome :
abel
novo
zeus
e passei o parametro titulari --> a
titularf --> p
e trouxe os três nomes ???
não entendi ???
where (icd.cn=0) or (icd.cn between "%$P{titulari}" and "%$P{titularf}")
T
thingol
Pode ser que cn = 0. Faça uma query “no braço” para entender o que está ocorrendo.
Além disso, eu não pus nenhum “%” no BETWEEN / AND.
De onde você tirou o “%”?
"%" se usa com LIKE, e isso não é um LIKE.
P
paribe
fiz isso e deu certo …
where ($P{titulari} ="0" and $P{titularf} ="0") or (substr(upper(icd.cn), 1, 1) between upper($P{titulari}) and upper($P{titularf}))
T
thingol
Só ia dizer para você que, do jeito que você fez, muito provavelmente você vai ter um “table scan”.
Normalmente nunca é recomendável usar um “substr” ou coisa parecida de um campo, porque o otimizador de consultas SQL do banco não consegue trabalhar direito com funções operando sobre colunas.