2009-07-22 110 views
0

我需要編寫一個查詢,會產生一種對於每個記錄排序ID的......因此,例如:生成SQL序列選擇

 
ID  Customer Name 
------------------------- 
C1000 customer #1 
C1010 customer #2 
C1020 customer #3 
C1030 customer #4 

現在,這些「C1000」的ID不存在...只有客戶的名字。我需要在執行select時生成它們...所以我可以保存輸出,然後導入到新系統中。

我該怎麼做:


select 
    'C' + (some kinda code/math that generates the count based on a sequence? or row number?), 
    name 
from Customers 

================================= ===============

最後我做了以下(這樣我就可以開始配置#和增量大小):


DECLARE @start int; 
DECLARE @inc int; 
set @start = 1000; 
set @inc = 10; 

Select 'C' + CAST(@start + (@inc * (ROW_NUMBER() OVER (ORDER BY name))) as varchar) as NewID, Name 
from customer 

+0

您將需要一些東西來排序或生成的序列將是不可預知的(將在運行之間改變)。 – 2009-07-22 16:53:50

回答