Solved

Sort Column in SQL Server

Posted on 2013-05-18
11
391 Views
Last Modified: 2013-05-28
Hi,

I have two columns in table MEMBERFAMILY called MEMBERNO and SPOUSENO.

The Data stored in these columns are as follows

MEMBERNO          SPOUSENO
A-1                         A-2
B-11                       B-101
B-14                       B-114

I need the ouput AS USERNO after sort as under in one column. While sort it is first sorted by alpha and then numeric.

Delimiter "-" is there in all the data

USERNO
A-1
A-2
B-11
B-14
B-101
B-114
0
Comment
Question by:GRChandrashekar
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
  • 2
  • +1
11 Comments
 
LVL 69

Expert Comment

by:Qlemo
ID: 39177292
If we can rely on a fixed format:
select * from
(select memberno as userno from memberfamily
union
select spouseno from memberfamily
) data
order by left(userno,1), substring(userno, 3, 10)

Open in new window

0
 

Author Comment

by:GRChandrashekar
ID: 39177301
Only delimiter is constant.
Alpha may be A, CRPB, XYZDDES and so on
Similarly length of number also is not fixed, it may be 0,10023342342, 34 and so on
0
 
LVL 69

Accepted Solution

by:
Qlemo earned 250 total points
ID: 39177320
I was afraid of that. Besides, the secondary sort expression was incorrect.
select userno from
(select memberno as userno, charindex('-', memberno) as idx from memberfamily
union
select spouseno, charindex('-', spouseno)  from memberfamily
) data
order by left(userno,idx), cast(substring(userno, idx+1, 100) as bigint)

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 32

Expert Comment

by:awking00
ID: 39177332
So, if alpha includes A, B, and ABC, the order should be?
A
ABC
B
0
 
LVL 48

Assisted Solution

by:PortletPaul
PortletPaul earned 250 total points
ID: 39177334
select
  code
from (
      select
          MEMBERNO as code
        , substring(MEMBERNO,1,charindex('-',MEMBERNO)-1) as alpha
        , cast(substring(MEMBERNO,charindex('-',MEMBERNO)+1,50) as int) as num
      from MEMBERFAMILY
      union all
      select
          SPOUSENO
        , substring(SPOUSENO,1,charindex('-',MEMBERNO)-1)
        , cast(substring(SPOUSENO,charindex('-',MEMBERNO)+1,50) as int)
      from MEMBERFAMILY
      ) ms
order by alpha, num

Open in new window

0
 
LVL 32

Expert Comment

by:awking00
ID: 39177354
PortletPaul beat me to it (again) but thought I would still post my solution -
select * from
(select memberno as userno from memberfamily
 union all
 select spouseno as userno from memberfamily) as x
order by substring(userno,1,charindex('-',userno)-1),
cast(substring(userno,charindex('-',userno)+1,len(userno)) as int;
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 39177363
In which way is PortletPaul's code to prefer over my much more simple one?
0
 
LVL 48

Expert Comment

by:PortletPaul
ID: 39187912
I haven't tested it but his proposed solution does indeed appear to meet the requirements.  
I  can't offer any opinion as to why mine was chosen.

I wish to add is that my suggestion was done without reference to Qlemo's
0
 
LVL 69

Expert Comment

by:Qlemo
ID: 39190531
Suppose equal split between http:#a39177320 and http:#a39177334 would be appropriate.
0

Featured Post

Backup Solution for AWS

Read about how CloudBerry Backup fully integrates your backups with Amazon S3 and Amazon Glacier to provide military-grade encryption and dramatically cut storage costs on any platform.

Question has a verified solution.

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

Everyone has problem when going to load data into Data warehouse (EDW). They all need to confirm that data quality is good but they don't no how to proceed. Microsoft has provided new task within SSIS 2008 called "Data Profiler Task". It solve th…
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Via a live example, show how to setup several different housekeeping processes for a SQL Server.

733 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