bagere
bagere

Reputation: 266

OpenSQL syntax CASE statement in WHERE condition

I would like to ask if it is possible to write CASE statement directly into WHERE clause (I know that WHERE clause can be passed also by string) e.g. 

 SELECT * FROM db_table INTO TABLE @mt_table[]
     WHERE key1 = @l_key1
          AND key2 = @l_key2
          AND key3 = @l_key3
          AND key4 = @l_key4
          AND ( WHEN l_auth = 'A' THEN username = @sy-uname
                WHEN l_auth = 'U' THEN username = @sy-uname OR username = @space 
                END ). 

Upvotes: 0

Views: 3871

Answers (1)

mkysoft
mkysoft

Reputation: 5758

You can use OR operator in WHERE clause.

SELECT * FROM db_table INTO TABLE @mt_table[]
 WHERE key1 = @l_key1
   AND key2 = @l_key2
   AND key3 = @l_key3
   AND key4 = @l_key4
   AND ( ( l_auth = 'A' AND username = @sy-uname )
      OR ( l_auth = 'U' AND ( username = @sy-uname OR username= @space ) )
       ).

I didn't find any document for supporting case in where clause for Open Sql.

Upvotes: 8

Related Questions