sql - 条件 SQL 执行
问题描述
我正在寻找一种方法,如果它是真的,我可以执行查询的一部分,如果它是假的,我会执行另一部分
例如:
我有一个记录表
身份证 | 用户 | LOG_MSG | LOG_DATE -------------------------------------- 1 | ADM | 登录成功 | 21-11-2018
当 ADM 登录时,我想执行
Select OSUSER, LOG_DATE from LOG
但是当其他人登录时,我想将 LOG_MSG 添加到查询中
我的问题:这可以在 sql 中获得吗?
解决方案
SQL 查询返回一组固定的列。因此,您只能使用动态 SQL 或多个查询来做您想做的事情。
但是,您可以屏蔽“ADM”的消息:
select l.OSUSER, l.LOG_DATE,
(CASE WHEN l.OSUSER <> 'ADM' THEN LOG_MSG END) as LOG_MSG
from LOG l;
推荐阅读
- mysql - 无法使用 PHPMyAdmin 导入数据库
- html - 有没有办法为自动换行设置断点?
- javascript - 每次加载时按内容设置 iframe 高度
- c# - 使用接口继承进行强制转换
- angular - Angular 7 - 如何在某些响应状态代码上重试 http 请求?
- sql - 在 SQL Postgres 中迭代 group by
- c# - 我可以在普通 VM 上部署我的 Azure 功能吗?
- python - Keras 模型检查点保存期间出错:'OSError:无法创建文件。没有权限'
- angular - android设备上的iframe全屏问题
- bash - 保留美元?使用文件描述符使用多个管道语句输出