Reputation: 266
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
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