我有以下数据
我想根据Region,Country,Store Type和Location列创建最后一列所示的索引级别。 因此,Region列对于每个新区域都有自己的序列号,即' APAC为1,然后EMEA为2'类似地,对于其他列(国家,商店类型,位置)也是如此。 我试图使用分区来获得结果,但我无法得到理想的结果。
答案 0 :(得分:3)
使用dense_rank()窗口功能。
select *,
concat(
dense_rank() over(order by Region), ',',
dense_rank() over(partition by Region order by Country), ',',
dense_rank() over(partition by Region, Country order by [Store Type]), ',',
dense_rank() over(partition by Region, Country, [Store Type] order by Location)
) as [Index Level]
from Tab
答案 1 :(得分:0)
使用简单的CONCAT函数(https://msdn.microsoft.com/en-us/library/hh231515.aspx)或+运算符将所有值连接在一起,并用逗号分隔所有值。