2013-07-29 38 views
0

我正在嘗試創建一個動態SQL語句,其中包含必須增加的別名。我的查詢就像在動態sql select語句中增加別名

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增加。如果有人有想法如何做到這一點,或可以指向我的方向,那將是美好的

+0

什麼是您想要增加的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; 
+0

我必須說錯了,別名應該是一個varchar,所以它可以是任何類型的遞增varchar值,如a,b,c,d。我的動態SQL將創建一個select語句的列表,它們將與1到70ish語句中的任意位置結合在一起,因此我需要別名是唯一的 –

+0

這很好,感謝您的幫助和深化我的知識 –