2012-01-19 5 views
5

मैं एक T-SQL का चयन करें बयान है और मैं ऑटो वेतन वृद्धि इसमें एक स्तंभ (कि डेटाबेस में मौजूद नहीं है)TSQL का चयन करें बयान में स्वत: वेतन वृद्धि सबक्वेरी

select dbo.a, dbo.b, dbo.c, select @d:=1; @increment:[email protected]+1 AS d 

इस संभव है करना चाहते हैं ?

+0

SQL Server 2000 को जल्द ही हटा दिया जाना चाहिए - यहां तक ​​कि 2005 संस्करण आधिकारिक तौर पर अब और एमएस द्वारा समर्थित नहीं है .... –

उत्तर

13

में मदद मिलेगी एसक्यूएल 2005 या उसके बाद:

SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY GETDATE()) AS d 

के रूप में वे प्रपत्र डीबी लौटा दिए जाते हैं पंक्तियों ऑर्डर करने के लिए। आप एक आदेश आप ऐसा कर सकते निर्दिष्ट करने के लिए करना चाहते हैं:

SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY dbo.a) AS d 

एसक्यूएल 2000 के लिए और इससे पहले कि आप एक अनूठा मूल्य की जरूरत से ऑर्डर करने के लिए:

SELECT dbo.a, dbo.b, dbo.c, (SELECT COUNT(*) FROM dbo d2 WHERE d2.a <= dbo.a) AS d 
FROM dbo 

या आप एक ही चयन की जरूरत नहीं है, तो :

SELECT IDENTITY(int,1,1) ID, dbo.a, dbo.b, dbo.c 
INTO #Temp 
FROM dbo 

SELECT * FROM #Temp 
+0

मैं हूं ई एसक्यूएल 2000। कोई अन्य तरीका? – tdjfdjdj

1

मुझे लगता है कि आप की तरह कुछ के साथ इसे हटा सकते हैं:

select dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER (order by dbo.a) as d from somewhere; 

मेरा जवाब एसक्यूएल सर्वर 2005+ ग्रहण किया, मुझे लगता है कि डी स्टेनली जवाब आप उपयोग कर रहे मान लिया जाये कि 2000

+1

'ROW_NUMBER()' SQL सर्वर 2005 के लिए नया था, ओपी SQL Server 2000 उपयोग कर रहा है –