sql - SQL 查询 - 填充列取决于
问题描述
我的数据库逐行报告了几个装有软件(仅特定软件)的终端。这是一个例子:
HOSTNAME | MAC ADDRESS | IP ADDRESS | SOFTWARE NAME
---------------------------------------------------
PC-AAA | 94-da-r2-12 | xx.xx.xx.xx| TeamViewer
PC-AAA | 94-da-r2-12 | xx.xx.xx.xx| Google Chrome
PC-BBB | 94-da-s4-16 | xx.xx.xx.xx| TeamViewer
PC-BBB | 94-da-s4-16 | xx.xx.xx.xx| Google Chrome
etc.
如何构建我的查询以便为每个软件提供一个列,如下例所示?
HOSTNAME | MAC ADDRESS | IP ADDRESS | TeamViewer | Google Chrome
----------------------------------------------------------------
PC-AAA | 94-da-r2-12 | xx.xx.xx.xx| TeamViewer |
PC-AAA | 94-da-r2-12 | xx.xx.xx.xx| | Google Chrome
PC-BBB | 94-da-s4-16 | xx.xx.xx.xx| TeamViewer |
PC-BBB | 94-da-s4-16 | xx.xx.xx.xx| | Google Chrome
解决方案
这是如何旋转 SQL 查询... SQL 服务器支持旋转,MySQL 和其他不支持
如果有固定数量的软件,aCASE WHEN
和GROUP BY
将起作用
SELECT
HOSTNAME, MAC ADDRESS, IP_ADDRESS,
CASE
WHEN (SOFTWARE_NAME = 'TeamViewer') THen 'TeamViewer'
ELSE ''
END AS TeamViewer
CASE
WHEN (SOFTWARE_NAME = 'GoogleChrome') THen 'GoogleChrome'
ELSE ''
END AS GoogleChrome
FROM
log_table
GROUP BY
HOSTNAME, MAC ADDRESS, IP_ADDRESS
推荐阅读
- c# - 如何在 AWS .NET 开发工具包中打开详细日志记录?
- postgresql - 需要多个客户的结果以及城市名称
- vue.js - 图像未在 vue 和 vue bootstrap 中显示
- javascript - 访问成员时对象数组返回未定义
- python - 根据另一行的值更改熊猫数据框中的一行
- selenoid - 有什么办法可以将 selenoid-ui 的默认端口从 8080 更改为其他端口
- saxon - 警告:无法识别的元素 xsl:variable online running saxon 但不在 Oxygen 中,为什么?
- arrays - 返回具有对象中某些属性的数组对象。打字稿
- c# - json反序列化中的日期时间字段
- android - 单击 Mapview 中的特定标记后,如何从 Firestore 数据库中获取有关活动的特定数据?