我正在尝试创建一个包含必须递增的别名的动态SQL语句。我的查询就像
DECLARE @q varchar(255)
SET @q = '0'
SELECT 'SELECT (SELECT DISTINCT NameColumn
FROM NAMETABLE) @q'
FROM NameTable
名称表@q中每条记录的位置发生变化。因此,对于记录1,@ q = 0,对于记录2,@ q = 1,对于记录3,@ q = 2,等等。我发现ROW_NUMBER但是看起来只是递增一列而作为Int而我需要一个varchar递增。如果有人知道如何做到这一点,或者可以指出我的方向是正确的
答案 0 :(得分:1)
这是你想要的吗?
SELECT 'SELECT (SELECT DISTINCT NameColumn
FROM NAMETABLE
) ' + cast(row_number() over (order by (select NULL)) as varchar(255))
FROM NameTable;
但是,我不清楚为什么你想要一个别名是一个数字。
编辑:
为了得到你想要的东西,只需用信件预先挂号。
SELECT 'SELECT (SELECT DISTINCT NameColumn
FROM NAMETABLE
) t' + cast(row_number() over (order by (select NULL)) as varchar(255))
FROM NameTable;