| Author |
Topic |
|
kodumudisadha
Starting Member
33 Posts |
Posted - 2009-03-05 : 08:00:38
|
| hi,in below query one row with fromnumber,tonumber i want to split between fromnumber and tonumberselect * from GVTSGVNUMBER_BNGgvname fromnumber tonumbergreen 12 15blue 18 19----expected output:gvname gvumbergreen 12 green 13green 14green 15blue 18blue 19----How to do this .please help |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-03-05 : 08:06:32
|
[code]DECLARE @Sample TABLE ( gvName VARCHAR(20), fromNumber TINYINT, toNumber TINYINT )INSERT @SampleSELECT 'green', 12, 15 UNION ALLSELECT 'blue', 18, 19SELECT s.gvName, v.Number + fromNumber AS gvNumberFROM @Sample AS sINNER JOIN master..spt_values AS v ON v.Type = 'P'WHERE v.Number <= toNumber - FromNumber[/code] E 12°55'05.63"N 56°04'39.26" |
 |
|
|
shaggy
Posting Yak Master
248 Posts |
Posted - 2009-03-05 : 08:24:28
|
| if this value is out of range...? |
 |
|
|
kodumudisadha
Starting Member
33 Posts |
Posted - 2009-03-05 : 08:53:54
|
| Hi,my fromnumber and tonumber is varchar datatype so its showing'Invalid operator for data type. Operator equals subtract, type equals varchar'How to convert this query for varchar datatype?please help. |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2009-03-05 : 08:57:11
|
quote: Originally posted by kodumudisadha Hi,my fromnumber and tonumber is varchar datatype so its showing'Invalid operator for data type. Operator equals subtract, type equals varchar'How to convert this query for varchar datatype?please help.
Cast them to INTCAST(fromnumber as INT)MadhivananFailing to plan is Planning to fail |
 |
|
|
sakets_2000
Master Smack Fu Yak Hacker
1472 Posts |
Posted - 2009-03-05 : 09:00:45
|
Unpivot should work as well.DECLARE @Sample TABLE ( gvName VARCHAR(20), fromNumber TINYINT, toNumber TINYINT )INSERT @SampleSELECT 'green', 12, 15 UNION ALLSELECT 'blue', 18, 19select gvname,number from (select * from @sample)a unpivot ( number for tag in(fromnumber,tonumber))a |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2009-03-05 : 09:03:54
|
quote: Originally posted by sakets_2000 Unpivot should work as well.DECLARE @Sample TABLE ( gvName VARCHAR(20), fromNumber TINYINT, toNumber TINYINT )INSERT @SampleSELECT 'green', 12, 15 UNION ALLSELECT 'blue', 18, 19select gvname,number from (select * from @sample)a unpivot ( number for tag in(fromnumber,tonumber))a
Yes. But the result is not what OP wantedMadhivananFailing to plan is Planning to fail |
 |
|
|
kodumudisadha
Starting Member
33 Posts |
Posted - 2009-03-05 : 09:31:12
|
| Thanks for all reply its working. |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2009-03-05 : 12:34:22
|
IF sql 2005 you can do like this;With CTE (gvname, fromnumber, tonumber)AS(SELECT gvname, fromnumber, tonumberFROM TableUNION ALLSELECT gvname, fromnumber+1, tonumberFROM CTEWHERE fromnumber+1<= tonumber)SELECT gvname, fromnumberFROM CTEOPTION (MAXRECURSION 0) |
 |
|
|
|