我想使用行号将数据集分区为两列。但只能按给定列中值的最后一个字符对其进行分区。
假设我使用以下查询:
SELECT ColumnA,
ColumnB,
ROW_NUMBER() OVER (PARTITION BY ColumnA, ColumnB ORDER BY ColumnA, ColumnB) RN
FROM Table1
ColumnB包含以下范围内的值:1000,2000,3000,4000。我希望它仅使用值的最后一个字符对B列进行分区(在上面的示例中' 0')
这可能吗?我该怎么做?
提前致谢!
答案 0 :(得分:2)
假设ColumnB
是varchar,您可以使用RIGHT()
:
SELECT ColumnA,
ColumnB,
ROW_NUMBER() OVER (PARTITION BY RIGHT(ColumnB, 1) ORDER BY ColumnA, ColumnB) RN
FROM Table1
否则,您可以使用% 10
获取最后一位数字。