Solved

# How do I add an ascending count to a column of data via tsql as I am selecting it?

Posted on 2011-03-14
357 Views
How do I add an ascending count to a column of data via tsql as I am selecting it? i.e

Column Data                Want to return

AAA                                 AAA1
BBB                                  BBB2
CCC                                  CCC3
DDD                                  DDD4

Guessing there is a way to concatenate the column data to row_number but haven't been able to work out the exact statement required.
0
Question by:ams_group
• 5
• 2

LVL 9

Accepted Solution

mayank_joshi earned 500 total points
``````WITH CTE AS
(
SELECT Coulmn_Data,   ROW_NUMBER() OVER (ORDER BY Coulmn_Data ) AS 'RowNumber'
FROM Table1
)
SELECT Coulmn_Data,Cast( Coulmn_Data as NVARCHAR(100)) +Cast(RowNumber  as NVARCHAR(100) ) as COL1 FROM CTE;
``````
0

LVL 9

Expert Comment

if ' Column Data' is non numeric you may  try:-

``````WITH CTE AS
(
SELECT Coulmn_Data,   ROW_NUMBER() OVER (ORDER BY Coulmn_Data ) AS 'RowNumber'
FROM Table1
)
SELECT Coulmn_Data,Coulmn_Data +RowNumber as COL1 FROM CTE;
``````
0

LVL 9

Expert Comment

shorter:-

``````SELECT Coulmn_Data, Coulmn_Data+Cast( ROW_NUMBER() OVER (ORDER BY Coulmn_Data ) AS
NVARCHAR(100)) 'RowNumber'
FROM Table1
``````
0

Author Closing Comment

Thanks, that was spot on
0

LVL 9

Expert Comment

I VE TESETED  THIS.IT WORKS FINE:-

``````SELECT column_data, column_data+Cast( ROW_NUMBER() OVER (ORDER BY column_data ) AS
NVARCHAR(100)) as Want_To_Return
FROM testtbl
``````
0

Author Comment

Thanks for your great solutions, just a quick question, any idea if it is possible to achieve a similar result in SQL 2000? Guessing identity could be a candiate for use although not sure it can be used to similar effect?
0

LVL 9

Expert Comment

There is no direct equivalent to  rownum or row id in SQL Server 2000. Strictly speaking, in a relational database, rows within a table are not ordered and a row id won't really make sense. But if you need that functionality, consider the following three alternatives:

* Add an IDENTITY column to your table. See Books Online for more information

* Use the following query to generate a row number for each row. The following query generates a row number for each row in the authors table of pubs database. For this query to work, the table must have a unique key.

``````    SELECT        (SELECT COUNT(i.au_id)
FROM pubs..authors i
WHERE i.au_id >= o.au_id ) AS RowID,
au_fname + ' ' + au_lname AS 'Author name'
FROM          pubs..authors o
ORDER BY      RowID
``````

* Use a temporary table approach, to store the entire resultset into a temporary table, along with a row id generated by the IDENTITY() function. Creating a temporary table will be costly, especially when you are working with large tables. Go for this approach, if you don't have a unique key in your table. Search for IDENTITY (Function) in SQL Server Books Online.

For more ideas on this topic, click http://support.microsoft.com/support/kb/articles/q186/1/33.asp  to read an informative article from Microsoft Knowledgebase.
0

## Join & Write a Comment Already a member? Login.

Audit has been really one of the more interesting, most useful, yet difficult to maintain topics in the history of SQL Server. In earlier versions of SQL people had very few options for auditing in SQL Server. It typically meant using SQL Trace …
I have written a PowerShell script to "walk" the security structure of each SQL instance to find:         Each Login (Windows or SQL)             * Its Server Roles             * Every database to which the login is mapped             * The associated "Database User" for this …
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

#### 763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

#### Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!