Born burn
Born burn

Reputation: 15

select with condition oracle

I have a VARCHAR which value aaa or bbb let say depend on this I have to make

  SELECT x FROM y WHERE y AND som = 1 

or

  SELECT x FROM y WHERE y AND som = 2

I there any way to make this like

SELECT i AS j,
case xxx
      when z then som1
      else som2
  end as ABC  
FROM ...

//EDIT

I want make something like this (lets say its pseudocode ;) )

variable VARCHAR;

SELECT id FROM table WHERE age =
CASE variable
WHEN 'aaa' THEN 21
ELSE 'bbb' THEN 99
END

Upvotes: 1

Views: 147

Answers (1)

Justin Cave
Justin Cave

Reputation: 231651

You could use a CASE statement

SELECT id
  FROM table
 WHERE age = (CASE WHEN variable = 'aaa' 
                   THEN 21
                   WHEN variable = 'bbb'
                   THEN 99
                   ELSE null
                END)

However, it may be more efficient and easier to read to just do an OR

SELECT id
  FROM table
 WHERE (variable = 'aaa' AND age = 21)
    OR (variable = 'bbb' AND age = 99)

Upvotes: 5

Related Questions