in a table where each row has 9 matched pairs is it possible to use Pivot to produce columns, so for example the following:
SELECT TOP 1 ID, HOME_APPDTE1, HOMENUMBER1, HOME_APPDTE2, HOMENUMBER2, HOME_APPDTE3, HOMENUMBER3, WORK_APPDTE1, WORKNUMBER2, WORK_APPDTE2, WORKNUMBER3, WORK_APPDTE3, WORKNUMBER1, MOBILE_APPDTE1, MOBILENUMBER1, MOBILE_APPDTE2, MOBILENUMBER2, MOBILE_APPDTE3, MOBILENUMBER3 FROM Telephone_Numbers
returns
ID HOME_APPDTE1 HOMENUMBER1 HOME_APPDTE2 HOMENUMBER2 HOME_APPDTE3 HOMENUMBER3 WORK_APPDTE1 WORKNUMBER2 WORK_APPDTE2 WORKNUMBER3 WORK_APPDTE3 WORKNUMBER1 MOBILE_APPDTE1 MOBILENUMBER1 MOBILE_APPDTE2 MOBILENUMBER2 MOBILE_APPDTE3 MOBILENUMBER3 23 2016-11-25 111111111 2015-06-22 222222222 2015-02-22 333333333 2017-01-25 444444444 2016-02-12 555555555 2015-06-13 666666666 2017-05-18 777777777 2016-12-23 888888888 2016-01-11 999999999
but I am after
ID Type Date_Changed Tel_Number Rank 23 Home 2016-11-25 111111111 1 23 Home 2015-06-22 222222222 2 23 Home 2015-02-22 333333333 3 23 Work 2017-01-25 444444444 1 23 Work 2016-02-12 555555555 2 23 Work 2015-06-13 666666666 3 23 Mobile 2017-05-18 777777777 1 23 Mobile 2016-12-23 888888888 2 23 Mobile 2016-01-11 999999999 3
Many thanks in advance of help
Assuming you don't need dynamic, yet another option is using a CROSS APPLY.
Also, assuming you didn't need a dynamic solution.
Example
Select A.ID
,B.*
From YourTable A
Cross Apply ( values ('Home' ,HOME_APPDTE1 ,HOMENUMBER1 ,1)
,('Home' ,HOME_APPDTE2 ,HOMENUMBER2 ,2)
,('Home' ,HOME_APPDTE3 ,HOMENUMBER3 ,3)
,('Work' ,WORK_APPDTE1 ,WORKNUMBER1 ,1)
,('Work' ,WORK_APPDTE2 ,WORKNUMBER2 ,2)
,('Work' ,WORK_APPDTE3 ,WORKNUMBER2 ,3)
,('Mobile',MOBILE_APPDTE1,MOBILENUMBER1,1)
,('Mobile',MOBILE_APPDTE2,MOBILENUMBER2,2)
,('Mobile',MOBILE_APPDTE3,MOBILENUMBER3,3)
) B ([Type],[DateChanged],[Tel_Number],[Rank])