Posted on 16-02-2007
Filed Under (DB2, SQL) by galifate

(Ojo: esto está importado de galifate.blogspot.com)

Pos aquí estamos. Me voy a apuntar aquí una cosita por si se me olvida. Hay un operador en SQL llamado IN, con el que uno puede hacer un OR de varios operantes. El rollo es el que sigue:

select * from tabla where t1 in (valor1, valor2, etc..)

Esto vendría a ser lo mismo que hacer …

select * from tabla where t1=valor1 or t1=valor2 or etc...

También está la opción de ejecutar la operación con parejas o tripletas:

select * from tabla where (t1,t2) in ((valor11,valor12),(valor21,valor22),etc...)

Esto vendría a ser …

select * from tabla where (t1=valor11 and t2=valor12)
or (t1=valor21 and t2=valor22) or etc...

Este es el rollo que le mola al Oracle, pero es que ahora estoy metido en temitas de DB2 y esta opción no rula. Pero tranquis, que esto se puede hacer del siguiente modo:

select * from tabla where (t1,t2) in (values (valor11,valor12),(valor21,valor22),etc…)

o así:

select * from tabla where (t1,t2) in (
select c1,c2 from tabla2)

Esta tontería me ha costado un rato, puesto que lo que he encontrado en la documentación online de IBM no es exactamente lo mismo. Después de hacer diferentes pruebas, me ha dado por poner lo del values y, ale!, a rular.

Discutir en el foro (0)

    Read More   

Comments

shard-borne catch on 20 Octubre, 2007 at 10:02 pm #

The fear of death is the most unjustified of all fears, for there’s no risk of accident for someone who’s dead — Albert Einstein


Post a Comment
Name:
Email:
Website:
Comments: