Duvida em SQL [Resolvido]

13 respostas
wagne23

Preciso fazer a seguite comparação entre tabelas onde em uma eu tenho por exemplo o valor c04 e na outra eu tenho somente 04, e a consulta tem que me retornar que são iguais. Como eu posso fazer essa comparação? Uso o banco de dados Informix.

13 Respostas

Guitar_Men

Se vc quiser fazer diretamente no SQL vai dar um pouco de trabalho e parecer meio “xunxado”. Transforme em string os dois campos e tente dar um like …

leorbarbosa

Use as funções sql, “LEFT, RIGHT, MID, SUBSTR”…

wagne23

Pior que eu preciso que seja feito em SQL mesmo. Eu tentei com like nos campos mas não rolou, tipo

E

Pelo que imagino, você precisaria fazer uma faxina nesses dados eventualmente, não?

wagne23

Eu vi que o informix tem suporte a função SUBSTRING ai eu tentei fazer o seguinte na SQL:

Mas tambem da erro.

eduardoac

Qual banco de dados esta usando?
Abraços.

wagne23

Informix da IBM

leorbarbosa

SELECT T1.coluna1, T2.coluna2
FROM TABELA1 T1, TABELA2 T2
WHERE LCASE(T1.SUBSTRING(T1.coluna1,5)) = LCASE(T2.SUBSTR(T2.coluna2,5))

wagne23

leorbarbosa, usei o LCASE mas acho que não convem por que os valores são numericos.

Guitar_Men

Force um cast para String ou varchar (não sei como é no INFORMIX)

pmlm

Se for sempre com dois digitos:

SELECT * FROM tabela1, tabela2 where tabela1.codigo[2,3] = tabela2.codigo

leorbarbosa

Tá,

mas no seu primeiro post você tinha colocado um alfanumérico, por isso usei funções string.

De todo modo, a ideia tá aí.

att.

wagne23

leorbarbosa entendi o que vc quis dizer, mas eu usei o substring para justamente tirar a letra “c” dos dados ai ficariam so numeros. Mas valeu pela ajuda.
pmlm, consegui com sua dica.

Obrigado pela ajuda de todos.

Criado 18 de agosto de 2010
Ultima resposta 18 de ago. de 2010
Respostas 13
Participantes 6