| Author |
Topic |
|
rico1931
Starting Member
37 Posts |
Posted - 2009-05-22 : 10:29:02
|
| Hello All,I have a query that I want the results to alternate order.ID KEY REGION975 100 LEFT1083 100 LEFT1084 100 LEFT999 100 LEFT1010 100 LEFT1011 100 LEFT1000 100 LEFT1002 100 LEFT1016 100 MIDDLE36 100 MIDDLE3 100 MIDDLE1034 100 MIDDLEI want the top to look like for the 3rd column. Is there an easy way to do this? or a keyword i'm missing? 975 100 LEFT1083 100 MIDDLE1084 100 LEFT999 100 MIDDLE1010 100 LEFT1011 100 MIDDLE1000 100 LEFT1002 100 MIDDLE1016 100 MIDDLE36 100 LEFT3 100 MIDDLE1034 100 LEFT |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2009-05-22 : 10:41:44
|
how do you determine the ordering of the records ? based on which column ? KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
rico1931
Starting Member
37 Posts |
Posted - 2009-05-22 : 10:54:38
|
| ok currently I have it by SEQ_NUM 975 100 LEFT SubheadMini-Blue USEN 101083 100 LEFT SubheadMini-Blue USEN 201084 100 LEFT Pgph-Mini-Black USEN 26999 100 LEFT SubheadMini-Blue USEN 301010 100 LEFT Default USEN 351011 100 LEFT Pgph-Mini-Black USEN 371000 100 LEFT Default USEN 401002 100 LEFT Pgph-Mini-Black USEN 501016 100 MIDDLE Default USEN 6036 100 MIDDLE Header-Blue USEN 653 100 MIDDLE Pgph-1.25 USEN 701034 100 MIDDLE Default USEN 751012 100 MIDDLE SubHeader-Red-L USEN 801014 100 MIDDLE Paragraph USEN 852 100 MIDDLE SubHeader USEN 90985 100 RIGHT Pgph-Mini-Black USEN 95 |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2009-05-22 : 11:02:06
|
so you want to alternate the region between LEFT & MIDDLE ? How about RIGHT ? KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2009-05-22 : 11:11:42
|
[code]DECLARE @data TABLE( [ID] int, [KEY] int, REGION varchar(10), OTHERS varchar(30), SEQ_NUM int)INSERT INTO @data ([ID], [KEY], REGION, OTHERS, SEQ_NUM)SELECT 975, 100, 'LEFT', 'SubheadMini-Blue', 10 UNION ALLSELECT 1083, 100, 'LEFT', 'SubheadMini-Blue', 20 UNION ALLSELECT 1084, 100, 'LEFT', 'Pgph-Mini-Black', 26 UNION ALLSELECT 999, 100, 'LEFT', 'SubheadMini-Blue', 30 UNION ALLSELECT 1010, 100, 'LEFT', 'DEFAULT', 35 UNION ALLSELECT 1011, 100, 'LEFT', 'Pgph-Mini-Black', 37 UNION ALLSELECT 1000, 100, 'LEFT', 'DEFAULT', 40 UNION ALLSELECT 1002, 100, 'LEFT', 'Pgph-Mini-Black', 50 UNION ALLSELECT 1016, 100, 'MIDDLE', 'DEFAULT', 60 UNION ALLSELECT 36, 100, 'MIDDLE', 'Header-Blue', 65 UNION ALLSELECT 3, 100, 'MIDDLE', 'Pgph-1.25', 70 UNION ALLSELECT 1034, 100, 'MIDDLE', 'DEFAULT', 75 UNION ALLSELECT 1012, 100, 'MIDDLE', 'SubHeader-Red-L', 80 UNION ALLSELECT 1014, 100, 'MIDDLE', 'Paragraph', 85 UNION ALLSELECT 2, 100, 'MIDDLE', 'SubHeader', 90 UNION ALLSELECT 985, 100, 'RIGHT', 'Pgph-Mini-Black', 95 ;WITH data ([ID], [KEY], [REGION], [OTHERS], [SEQ_NUM], [ROW_NO])AS( SELECT [ID], [KEY], [REGION], [OTHERS], [SEQ_NUM], [ROW_NO] = ROW_NUMBER() OVER (ORDER BY SEQ_NUM) FROM @data)SELECT *, CASE WHEN ROW_NO % 2 = 1 THEN 'LEFT' ELSE 'MIDDLE' ENDFROM data/*ID KEY REGION OTHERS SEQ_NUM ROW_NO ----------- ----------- ---------- ------------------------------ ----------- -------------------- ------ 975 100 LEFT SubheadMini-Blue 10 1 LEFT1083 100 LEFT SubheadMini-Blue 20 2 MIDDLE1084 100 LEFT Pgph-Mini-Black 26 3 LEFT999 100 LEFT SubheadMini-Blue 30 4 MIDDLE1010 100 LEFT DEFAULT 35 5 LEFT1011 100 LEFT Pgph-Mini-Black 37 6 MIDDLE1000 100 LEFT DEFAULT 40 7 LEFT1002 100 LEFT Pgph-Mini-Black 50 8 MIDDLE1016 100 MIDDLE DEFAULT 60 9 LEFT36 100 MIDDLE Header-Blue 65 10 MIDDLE3 100 MIDDLE Pgph-1.25 70 11 LEFT1034 100 MIDDLE DEFAULT 75 12 MIDDLE1012 100 MIDDLE SubHeader-Red-L 80 13 LEFT1014 100 MIDDLE Paragraph 85 14 MIDDLE2 100 MIDDLE SubHeader 90 15 LEFT985 100 RIGHT Pgph-Mini-Black 95 16 MIDDLE(16 row(s) affected)*/[/code] KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
rico1931
Starting Member
37 Posts |
Posted - 2009-05-22 : 11:17:13
|
| yes this is exactly what I need. I need that FAR RIGHT column to show up in the REGION column. Including the RIGHT Region. Could you possibly explain how you did this? |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2009-05-22 : 11:25:49
|
is it the last line to show RIGHT ? KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2009-05-22 : 11:35:08
|
like this ?;WITH data ([ID], [KEY], [REGION], [OTHERS], [SEQ_NUM], [ROW_NO], [REV_ROW_NO])AS( SELECT [ID], [KEY], [REGION], [OTHERS], [SEQ_NUM], [ROW_NO] = ROW_NUMBER() OVER (ORDER BY SEQ_NUM), [REV_ROW_NO] = ROW_NUMBER() OVER (ORDER BY SEQ_NUM DESC) FROM @data)SELECT *, CASE WHEN REV_ROW_NO = 1 THEN 'RIGHT' WHEN ROW_NO % 2 = 1 THEN 'LEFT' ELSE 'MIDDLE' ENDFROM dataORDER BY ROW_NO KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
rico1931
Starting Member
37 Posts |
Posted - 2009-05-22 : 11:59:33
|
| thanks khtan this really helped |
 |
|
|
|
|
|