SELECT *
FROM Tabl tabb
WHERE (tabb.col1, tabb.col2) IN ( (1,2), (3,4))

El anterior funciona en Oracle, pero estoy tratando de ejecutar en una propiedad de un motor de SQL que no admite la consulta de arriba formación con varias columnas en EN.

Estoy tratando de encontrar combinaciones de 1,2 y 3,4 en la DB.

Por favor me ayude con alguna de las alternativas para lograr lo anterior.

Estoy buscando la manera de pasar de una lista de valores para col1 y col2 de Java en una sola toma, por lo que a ‘=’ no puede ser una opción ya que puede requerir dos sentencias SQL para lograr lo anterior.

sería más fácil con datos de ejemplo, desea que el resultado donde col1 = 1 y col2 = 2 o col1 = 3 y col2 = 4 ?
Sí quiero que el resultado donde col1 = 1 y col2 = 2 o col1 = 3 y col2 = 4.
Creo que @sala stephenk respuesta es correcta…

OriginalEl autor user1857647 | 2012-11-27

3 Comentarios

  1. 5

    ¿Qué hay de esto?

    SELECT
        *
    FROM
        Tabl tabb
    WHERE
        (tabb.col1 = 1 AND tabb.col2 = 2) OR
        (tabb.col1 = 3 AND tabb.col2 = 4)
    Disculpas por no ser más claro anteriormente, por favor, consulte la edición de las preguntas anteriores.

    OriginalEl autor hall.stephenk

  2. 0

    Se podría hacer algo como esto:

    SELECT *
    FROM Tabl tabb
    inner join (
        select 1 a, 2 b 
        union select 3, 4
    ) x
    on tabb.col1 = x.a
    and tabb.col2 = x.b
    Como lo he mencionado en la pregunta, los valores 1,2,3,4 son valores estáticos y no un resultado de seleccionar.

    OriginalEl autor JohnLBevan

  3. 0

    En el caso de las columnas numéricas y suponiendo que los valores están limitados a un rango específico
    más valores puede ser empaquetada en un número mediante alguna fórmula

    por ejemplo, suponiendo que los valores de col1 y col2 son de 1 a 1000
    la fórmula

      N = 10000 * col1 + col2

    puede ser utilizado, y en el ejemplo de la seleccione sería

      SELECT * FROM Tabl tabb WHERE (10000 * tabb.col1 + tabb.col2) IN ( 10002, 30004)

    En general, de la concatenación de cadenas puede ser utilizado para combinar varios valores de la columna, por ejemplo

      SELECT * FROM Tabl tabb WHERE (tabb.col1||"&"||tabb.col2) IN ( "1&2", "3&4")

    OriginalEl autor elxala

Dejar respuesta

Please enter your comment!
Please enter your name here