增加动态sql select语句中的别名

时间:2013-07-29 02:04:37

标签: sql sql-server-2005 testing dynamic-sql

我正在尝试创建一个包含必须递增的别名的动态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递增。如果有人知道如何做到这一点,或者可以指出我的方向是正确的

1 个答案:

答案 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;