Question

I am having a small problem with SQL Server 2012 with a UNION query.

I have a following simple select statement But it does not return data in order as per the sl_no column

SELECT * 
FROM
(SELECT '1'SL_NO, '10000' [KEY METRIC] UNION
SELECT '2', '5000' UNION
SELECT '3', '1000' UNION
SELECT '4', '750' UNION
SELECT '5', '500' UNION
SELECT '6', '250' UNION
SELECT '7', '100' UNION
SELECT '8', '50' UNION
SELECT '9', '25' UNION
SELECT '10', '10' UNION
SELECT '11', '5' UNION
SELECT '12', 'AAL' UNION
SELECT '13', 'Standard Deviation' UNION
SELECT '14', 'Coefficient of Variation') A 
order by SL_NO

I need this data in following form

|1  |10000    |
|2  |5000     |
|3  |1000     | 
|4  |750      |
|5  |500      |
|6  |250      |
|7  |100      |
|8  |50       | 
|9  |25       | 
|10 |10       |
|11 |5        | 
|12 |AAL      |
|13 |Standard Deviation|
|14 |Coefficient of Variation|
Was it helpful?

Solution 3

SELECT * 
FROM
(SELECT 1 SL_NO, '10000' [KEY METRIC] UNION
SELECT 2, '5000' UNION
SELECT 3, '1000' UNION
SELECT 4, '750' UNION
SELECT 5, '500' UNION
SELECT 6, '250' UNION
SELECT 7, '100' UNION
SELECT 8, '50' UNION
SELECT 9, '25' UNION
SELECT 10, '10' UNION
SELECT 11, '5' UNION
SELECT 12, 'AAL' UNION
SELECT 13, 'Standard Deviation' UNION
SELECT 14, 'Coefficient of Variation') A 
order by SL_NO Asc

OTHER TIPS

why store int as varchar

SELECT * 
FROM
(SELECT 1 SL_NO, '10000' [KEY METRIC] UNION
SELECT 2, '5000' UNION
SELECT 3, '1000' UNION
SELECT 4, '750' UNION
SELECT 5, '500' UNION
SELECT 6, '250' UNION
SELECT 7, '100' UNION
SELECT 8, '50' UNION
SELECT 9, '25' UNION
SELECT 10, '10' UNION
SELECT 11, '5' UNION
SELECT 12, 'AAL' UNION
SELECT 13, 'Standard Deviation' UNION
SELECT 14, 'Coefficient of Variation') A 
order by SL_NO

Use the following:

ORDER BY CAST(SL_NO AS INT)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top