2

在 DataWarehouse (SQL Server 2012) 和某些表中,我想实现一个选项,其中一些用户只能看到最新的行(日期或标志)而不是整个历史记录。这可能吗?

4

1 回答 1

0

视图将是一个很好的用例......像这样使用窗口函数来查找“最新”记录。您也可以MAX()dateColumn带有内部连接的情况下使用。只需在分区部分填写<column1, column2>您想要对数据进行分组的内容。这是有关此的文档。

create view myView
as

;with cte as(
select
   primaryKey
   ,column2
   ,dateColumn
   ,RN = row_number over (partition by <column1, column2> order by dateColumn desc)
from
   YourTable)

select 
   primaryKey
   ,column2
   ,dateColumn
from cte
where RN = 1

然后,对于您只想查看此数据的用户......您将明确授予他们查看权限。

grant select on myView to MyUserGroup
于 2018-06-25T14:04:26.553 回答