(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.
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