条件SQL执行

时间:2018-11-21 11:30:59

标签: sql

我正在寻找一种方法,该方法可以让我执行查询的一部分(如果为真),而另一部分为假(

例如:

我有一个日志表

ID | OSUSER | LOG_MSG      | LOG_DATE
----------------------------------------
1  | ADM    | lOGIN SUCCES | 21-11-2018

当ADM登录时,我要执行

Select OSUSER, LOG_DATE from LOG

但是当其他人登录时,我想将LOG_MSG添加到查询中

我的问题:这可以在sql中获得吗?

2 个答案:

答案 0 :(得分:1)

SQL查询返回一组固定的列。因此,您只能使用动态SQL或多个查询来做您想做的事情。

但是,您可以为“ ADM”屏蔽消息:

select l.OSUSER, l.LOG_DATE,
       (CASE WHEN l.OSUSER <> 'ADM' THEN LOG_MSG END) as LOG_MSG
from LOG l;

答案 1 :(得分:0)

像下面这样的情况如何

select ID, case when OSUSER='ADM' then OSUSER else LOG_MSG end,LOG_DATE
from LOG