I've a table with data as below:

Key CustNo
 1   0431,0324,98731
 2   12,32,45,56,67,878

How to write an SQL statement to get the result as:

1 0431
1 0324
1 98731
2 12
2 32
2 45

... and so on?

    Requires Free Membership to View

Short answer: don't do this in SQL.

Longer answer: you can do this with SQL, but the SQL is very complex and ugly. There is a semi-easy way to do it, provided there happens to exist a Customers table which has individual CustNo values as primary (or at least unique) key.

select m.Key
     , c.CustNo
  from myTable as m
  join Customers as c
    on  ',' || m.CustNo || ','
  like '%,' || c.CustNo || ',%'

While this works, it's not very efficient. You should consider normalizing your table.

This was first published in January 2007

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: