有人可以解释“选择视图编辑FROM表WHERE t.action = action”的目的

时间:2015-01-16 01:56:42

标签: sql

我试图遵循此代码

SQL Server: Examples of PIVOTing String data

我已将表导入sql server,看到了

"选择view_edit FROM tbl WHERE t.action = action"确实

给我一​​个view_edit,它位于" select * from tbl"但是我很无能为什么作者使用了这行代码。

1 个答案:

答案 0 :(得分:0)

这太大了,无法发表评论,所以在答题部分添加

我认为你指的是这个SQL代码。

SELECT Action, 
[View] = (Select view_edit FROM tbl WHERE t.action = action and view_edit = 'VIEW'),
[Edit] = (Select view_edit FROM tbl WHERE t.action = action and view_edit = 'EDIT')
FROM tbl t
GROUP BY Action

此处使用相关子查询而不是MAX聚合或pivot关键字 对于表中的每个操作,相关的子查询中都会获取相应的view_edit值,如果找不到相应的操作,则它将为NULL

要了解更多信息,请移除group by并运行查询,您将了解相关子查询以及对group by的需求