![]() |
mbt shoes las vegas 03 B C N N
Table 1 a total of two columns, rows variable:
A B C A B C D D Table 2 A absolute of two columns,You can not love life forever , rows precarious 01 A 02 A, B, D 03 B, C 04 C, D If you produce table 3 (N = null) 01 A A N N N N 02 A A B D B B C D 03 B C N N 04 C C D D N N Table 1 and Table 2, detect out how the data namely equal to the pertinent contact Table 3, Table 2, the second column is the character series. best no apt use loops and cursors, the best SQL tin be secondhand to directly solve. create table tb1 (c1 varchar (10), c2 varchar (10)) insert into tb1 values ('A', 'A') insert into tb1 values ('B', 'B') insert into tb1 values ('C', 'c') insert into tb1 values ('D', 'd') create table tb2 (c1 varchar (10), c2 varchar (10)) insert into tb2 values ('01 ',' A ') insert into tb2 values ('02',如果你能达到18秒以上, 'A, B, D') insert into tb2 values (' 03 ',' B, C ') insert into tb2 values ('04', 'C, D') go select m.c1, ; m.c21, isnull ((select c2 + '' from tb1 n where n.c1 = m.c21),nike air jordans, 'N' ) + isnull (m.c22 + '', 'N') + isnull ((select c2 + '' from tb1 n where n.c1 = m.c22), 'N') + isnull (m.c23 + '', 'N') + isnull ((select c2 + '' from tb1 n where n.c1 = m.c23), 'N') + isnull (m.c24 + '', 'N') + isnull ((select c2 + '' from tb1 n where n.c1 = m.c24), 'N') c3 from ( select c1, ; parsename (replace (reverse (c2), ',','.'), 1) c21, parsename (replace (reverse (c2), ' , ','.'), 2) c22, parsename (replace (reverse (c2),', ','.'), 3) c23, parsename (replace (reverse (c2), ',','.'), 4) c24 from tb2 ) m drop table tb1, tb2 from alike problems - / * specification of the problem tba ID classid name 1 ; 1,2,3 suit 2 2,3 tunic 3 1 , 3 pants tbb id classname 1 dress shirt 2 I have 3 pants result is id classname ; name 1 clothes, jacket, pants suit 2 jacket, pants ; tunic 3 clothes, pants Name pants * / ------------------------------------- ---------------- - sql server 2000 in a written create table tba (ID int, classid varchar (20), name varchar (10)) insert into tba values (1, '1, 2,3 ',' suits ') insert into tba values (2, '2, 3',mbt shoes las vegas, 'tunic') insert into tba values (3, '1, 3 ',' label of pants ') create table tbb (ID varchar (10), classname varchar (10)) insert into tbb values ('1' , 'clothes') insert into tbb values ('2 ',travel straighteners,' Top ') insert into tbb values ('3', 'trousers') go - the first 1 kind of method, create a feature to display create function f_hb (@ id varchar (10)) returns varchar (1000) as begin declare @ str varchar ( 1000) set @ str ='' select @ str = @ str +','+[ classname] from tbb where charindex (','+ hurl (id for varchar) +',',','+id +',')> 0 return matter (@ str, 1,1,'') end go select id,shoes jordans, classid = dbo.f_hb (classid), name from tba drop function f_hb / * id classid name ----------- ------------- - --------- 1 clothes, jacket, pants suits 2 ; shirt, jeans tunic 3 dress, jeans were pants (number of rows affected by line 3) * / - 2 ways. update when (exists (select * from tba, tbb where charindex (tbb.id, tba.classid)> 0)) update tba set classid = replace (classid, tbb.id, tbb.classname ) from tbb where charindex (tbb.id, tba.classid)> 0 select * from tba / * ID classid name ----------- -------------------- ---------- 1 ; clothes, jacket, pants suits 2 T-shirt, pants tunic 3 ; clothes, trousers were pants (number of rows affected by line 3) * / drop table tba, tbb -------------------------------- ---------------------------------------- - sql server 2005 in the first decomposition tba the classid, and then merge classname create table tba (ID integer, classid varchar (20), name varchar (10)) insert into tba values (1, '1, 2,3 ', 'suits') insert into tba values (2, '2,mbt shoes chapa gtx, 3', 'tunic') insert into tba values (3, '1, 3 ',' name pants') establish chart tbb (ID varchar (10), classname varchar (10)) insert into tbb values ('1 ',' clothes') insert into tbb values ('2 ', 'Top') insert into tbb values ('3 ',' trousers') go SELECT id, classname, name FROM ( SELECT DISTINCT id, name FROM (select tbc.id, tbc.name, tbb.classname from ( SELECT A.id, A.name, B.classid FROM (SELECT id, name,air max turbulence, [classid] = CONVERT (xml, ' ' + REPLACE ([classid], ',', ' ') + ' ') FROM tba) A OUTER APPLY (SELECT classid = Nvvalue ('.',' varchar (100) ') FROM A. [ ,],[A OUTER APPLY ( SELECT [classname] = STUFF (REPLACE (REPLACE (( SELECT classname FROM (choose tbc.id, tbc . name, tbb.classname from ( SELECT A.id, A.name, B.classid FROM (SELECT id , name, [classid] = CONVERT (xml, ' ' + REPLACE ([classid], ',', ' ') + ' ; ') FROM tba) A OUTER APPLY (SELECT classid = Nvvalue ('.',' varchar (100) ') FROM A. [classid]. nodes ('/ root / v') N (v)) B ) tbc, tbb where tbc.classid = tbb.id ) N WHERE id = A.id and name = A.name FOR XML AUTO), ' ',''), 1, 1,'') ) N order by id drop table tba, tbb / * id ; classname name ----------- ---- ---------- ---------- 1 clothes, jacket, pants suits 2 T-shirt, pants tunic 3 ; clothes, trousers were pants (3 rows affected) * / |
All times are GMT. The time now is 10:54 AM. |
Powered by vBulletin Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Free Advertising Forums | Free Advertising Message Boards | Post Free Ads Forum