2012/10/14 Luiz Rafael Culik <[email protected]>
>
>
> Em 14 de outubro de 2012 20:35, Matheus de Oliveira <
> [email protected]> escreveu:
>
>
>>
>> 2012/10/14 Luiz Rafael Culik <[email protected]>
>>
>>>
>>>
>>> Em 14 de outubro de 2012 20:26, Matheus de Oliveira <
>>> [email protected]> escreveu:
>>>
>>>
>>>>
>>>> On Sun, Oct 14, 2012 at 7:48 PM, Luiz Rafael <[email protected]>wrote:
>>>>
>>>>> Boa Noite
>>>>>
>>>>> Gostaria de ajuda pra um pequeno problema
>>>>>
>>>>> tenho uma tabela com a seguinte estrutura
>>>>>
>>>>> CREATE TABLE xxced2
>>>>> (
>>>>> sr_recno bigserial NOT NULL,
>>>>> indkey_001 character varying(254),
>>>>> CONSTRAINT xxced2_sr_recno_key UNIQUE (sr_recno)
>>>>> )
>>>>> WITH (
>>>>> OIDS=FALSE
>>>>> );
>>>>>
>>>>> CREATE INDEX xxced2_xxced11
>>>>> ON xxced2
>>>>> USING btree
>>>>> (indkey_001 COLLATE pg_catalog."default" NULLS FIRST);
>>>>>
>>>>> com os seguintes dados
>>>>> sr_recno; indkey_001
>>>>> 154;"201223.3.90.05.54 154"
>>>>> 155;"201223.3.90.05.55 155"
>>>>> 156;"201223.3.90.05.56 156"
>>>>> 157;"201223.3.90.05.61 157"
>>>>> 158;"201223.3.90.05.99 158"
>>>>> 159;"201223.3.90.06.00 159"
>>>>> 160;"201223.3.90.07.00 160"
>>>>> 161;"201223.3.90.08.00 161"
>>>>> 162;"201223.3.90.08.01 162"
>>>>> 163;"201223.3.90.08.02 163"
>>>>> 164;"201223.3.90.08.03 164"
>>>>> 165;"201223.3.90.08.99 165"
>>>>> 166;"201223.3.90.09.00 166"
>>>>> 167;"201223.3.90.09.02 167"
>>>>> 168;"201223.3.90.09.04 168"
>>>>> 169;"201223.3.90.09.05 169"
>>>>> 170;"201223.3.90.09.06 170"
>>>>> 171;"201223.3.90.10.00 171"
>>>>> 172;"201223.3.90.14.00 172"
>>>>> 173;"201223.3.90.14.14 173"
>>>>> 174;"201223.3.90.14.16 174"
>>>>> 175;"201223.3.90.15.00 175"
>>>>> 176;"201223.3.90.16.00 176"
>>>>> 177;"201223.3.90.18.00 177"
>>>>> 178;"201223.3.90.19.00 178"
>>>>> 179;"201223.3.90.20.00 179"
>>>>> 180;"201223.3.90.26.00 180"
>>>>> 181;"201223.3.90.27.00 181"
>>>>> 182;"201223.3.90.28.00 182"
>>>>> 183;"201223.3.90.30.00 183"
>>>>> 184;"201223.3.90.30.01 184"
>>>>> 185;"201223.3.90.30.02 185"
>>>>> 186;"201223.3.90.30.03 186"
>>>>> 187;"201223.3.90.30.04 187"
>>>>> 188;"201223.3.90.30.05 188"
>>>>> 189;"201223.3.90.30.06 189"
>>>>> 190;"201223.3.90.30.07 190"
>>>>> 191;"201223.3.90.30.08 191"
>>>>> 192;"201223.3.90.30.09 192"
>>>>> 193;"201223.3.90.30.10 193"
>>>>> 194;"201223.3.90.30.11 194"
>>>>> 195;"201223.3.90.30.12 195"
>>>>> 196;"201223.3.90.30.13 196"
>>>>> 197;"201223.3.90.30.14 197"
>>>>> 198;"201223.3.90.30.15 198"
>>>>> 199;"201223.3.90.30.16 199"
>>>>> 200;"201223.3.90.30.17 200"
>>>>> 201;"201223.3.90.30.18 201"
>>>>> 202;"201223.3.90.30.19 202"
>>>>> 203;"201223.3.90.30.20 203"
>>>>> 204;"201223.3.90.30.21 204"
>>>>>
>>>>> Agora vem o problema
>>>>>
>>>>> se eu usar a query
>>>>>
>>>>> SELECT A."sr_recno", A."indkey_001" FROM "xxced1" A WHERE (
>>>>> A."indkey_001" <= E'201223.3.90.30.00' ) ORDER BY
>>>>> A."indkey_001" desc
>>>>>
>>>>> o registro com a informacao 201223.3.90.30.00 no campo indkey não e
>>>>> retornado
>>>>> alguma sugestao?
>>>>>
>>>>
>>>> Pelos dados que você passou, não tem essa informação mesmo, apenas
>>>> o "201223.3.90.30.00 183", que contém "<epaços>183" concatenado à
>>>> "201223.3.90.30.00",
>>>> e, portanto é maior que "201223.3.90.30.00". Verifique melhor os dados,
>>>> talvez concatenando algum caracter antes e depois para verificar se não há
>>>> espaços ou caracteres não imprimívies.
>>>>
>>>>
>>> Matheus
>>>
>>> Se eu usar um select substr resolveria o meu problema?
>>>
>>>
>> Depende, qual exatamente é o seu problema?
>>
>>
>>
>> Matheus
>>
>
> Eu preciso trazer tudo que for <= ao dado independente da concatenação ou
> seja se pedisse <= 201223.3.90.30.00
> teria que trazer por exemplo
>
> 183;"201223.3.90.30.00"
> 182;"201223.3.90.28.00"
>
>
Bom, se for fixa a quantidadde de caracteres:
SELECT substr('201223.3.90.30.21 204', 1, 17);
Agora, se for um padrão sempre números e pontos no começo, mas não
exatamente 17 caracteres, você pode usar uma expressão regular, ex:
SELECT regexp_replace('201223.3.90.30.21 204', '^([0-9.]*).*$',
E'\\1');
Se não for nenhum caso, explique melhor a formação desse campo.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados PostgreSQL
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral