sql - Using CROSS JOIN -
i learning how use cross joins , can't see doing wrong 1 attempting.
what have pattern , numbers table.
number table:
numberid tinyint
pattern table:
patternid tinyint identity(1,1)
patternresult varchar(5)
i have inserted each row in number table 1 - 22.
at moment getting no results displayed. i want display patterns between numbers 0 - 5 (i can't include '0' in number table later on using table requires number beginning @ '1' 'number' table
e.g 0 - 0 0 - 1 0 - 2 0 - 3 0 - 4 0 - 5 1 - 0 1 - 1 1 - 2 1 - 3 1 - 4 1 - 5 etc what doing incorrectly cross join?
insert dbo.pattern(patternresult) select cast(n.numberid varchar (5)) + ' - ' + cast(nn.numberid varchar (5)) patternresult dbo.number n cross join dbo.number nn
first, query insert. insert statements not return result sets.
so, question is, return?
select * dbo.pattern next, pattern has space 5 characters, using 3 ' - '. so, try making pattern can fit (by removing spaces):
insert dbo.pattern(patternresult) select cast(n.numberid varchar (5)) + '-' + cast(nn.numberid varchar (5)) patternresult dbo.number n cross join dbo.number nn; finally, when using varchar() there no advantage making sizes small. might define field patternresult varchar(255) big enough result. when using char() small value important, because characters stored spaces.
Comments
Post a Comment