0

我正在尝试创建一个动态 SQL 语句,其中包含一个必须递增的别名。我的查询就像

DECLARE @q varchar(255)
SET @q = '0'
SELECT 'SELECT (SELECT DISTINCT NameColumn 
FROM NAMETABLE) @q' 
FROM NameTable

nametable @q 中每条记录的更改位置。因此,对于记录 1,@q = 0,对于记录 2,@q = 1,对于记录 3,@q = 2,等等。我发现 ROW_NUMBER 但这似乎只增加一列并作为 Int 而我需要一个varchar 递增。如果有人对如何做到这一点有想法或者可以为我指出正确的方向,那就太好了

4

1 回答 1

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;
于 2013-07-29T02:08:14.463 回答