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
7
376 Views
Last Modified: 2012-05-11
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
Comment
Question by:ams_group
  • 5
  • 2
7 Comments
 
LVL 9

Accepted Solution

by:
mayank_joshi earned 500 total points
ID: 35125873
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;

Open in new window

0
 
LVL 9

Expert Comment

by:mayank_joshi
ID: 35125880
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;

Open in new window

0
 
LVL 9

Expert Comment

by:mayank_joshi
ID: 35125907
shorter:-

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

Open in new window

0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 

Author Closing Comment

by:ams_group
ID: 35125988
Thanks, that was spot on
0
 
LVL 9

Expert Comment

by:mayank_joshi
ID: 35125989
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

Open in new window

0
 

Author Comment

by:ams_group
ID: 35127486
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

by:mayank_joshi
ID: 35127572
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

Open in new window


    * 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

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article I will describe the Backup & Restore method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

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

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

Join & Ask a Question