Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 扎布尔。 Table1 - ID---Tags 1---tag1,tag2,tag3,tag6 2---tag2,tag4,tag5 3---tag3,tag8,tag9,tag10 4---tag1,tag2,tag6 5---tag1,tag4,ta_Sql_Sql Server 2008_Join_Concatenation_Partial - Fatal编程技术网

Sql 扎布尔。 Table1 - ID---Tags 1---tag1,tag2,tag3,tag6 2---tag2,tag4,tag5 3---tag3,tag8,tag9,tag10 4---tag1,tag2,tag6 5---tag1,tag4,ta

Sql 扎布尔。 Table1 - ID---Tags 1---tag1,tag2,tag3,tag6 2---tag2,tag4,tag5 3---tag3,tag8,tag9,tag10 4---tag1,tag2,tag6 5---tag1,tag4,ta,sql,sql-server-2008,join,concatenation,partial,Sql,Sql Server 2008,Join,Concatenation,Partial,扎布尔。 Table1 - ID---Tags 1---tag1,tag2,tag3,tag6 2---tag2,tag4,tag5 3---tag3,tag8,tag9,tag10 4---tag1,tag2,tag6 5---tag1,tag4,tag5 Table2 - tagname---taglabel tag1--- Nice Name Tag1 tag2--- Nice Name Tag2 tag3--- Nice Name Tag3 tag4--- Nice Name Ta

扎布尔。
Table1 - 
ID---Tags
1---tag1,tag2,tag3,tag6
2---tag2,tag4,tag5
3---tag3,tag8,tag9,tag10
4---tag1,tag2,tag6
5---tag1,tag4,tag5

Table2 - 
tagname---taglabel
tag1--- Nice Name Tag1
tag2--- Nice Name Tag2
tag3--- Nice Name Tag3
tag4--- Nice Name Tag4
tag5--- Nice Name Tag5
tag6--- Nice Name Tag6
tag7--- Nice Name Tag7
tag8--- Nice Name Tag8
tag9--- Nice Name Tag9
tag10--- Nice Name Tag10
ID---TagsNames
1---Nice Name Tag1,Nice Name Tag2,Nice Name Tag3,Nice Name Tag6
2---Nice Name Tag2,Nice Name Tag4,Nice Name Tag5
3---Nice Name Tag3,Nice Name Tag8,Nice Name Tag9,Nice Name Tag10
4---Nice Name Tag1,Nice Name Tag2,Nice Name Tag6
5---Nice Name Tag1,Nice Name Tag4,Nice Name Tag5
 SELECT gt.id as g
      ,gt.tags as tg
      ,tt.HitTagName as ht
      ,tt.termlabel as tl 
FROM tblidtags gt (nolock)
JOIN tbltaglabels tt (Nolock) ON gt.tg like '%' + tt.ht + '%'
WITH tmp (id, tag, tags) AS (
SELECT id, LEFT(tags, CHARINDEX(',',tags+',')-1),
    STUFF(tags, 1, CHARINDEX(',',tags+','), '')
FROM tbl1
UNION ALL
SELECT id, LEFT(tags, CHARINDEX(',',tags+',')-1),
    STUFF(tags, 1, CHARINDEX(',',tags+','), '')
FROM tmp
WHERE tag > ''
)
SELECT id, 
 STUFF((SELECT ',' + tbl2.descr FROM tmp INNER JOIN tbl2 ON (tmp.tag = tbl2.tag) 
        WHERE id = a.id
        FOR XML PATH ('')), 1, 1, '') tag_names
FROM tmp a
WHERE tag != ''
GROUP BY id
ORDER BY id;
;WITH cte AS (
    SELECT a.ID, b.taglabel FROM
        (SELECT c.ID, Split.a.value('.', 'VARCHAR(100)') AS Tags FROM 
            (SELECT ID, CAST('<M>' + REPLACE(Tags,  ',' , '</M><M>') + '</M>' AS XML) AS Tag 
                FROM dbo.Table1) c
        CROSS APPLY Tag.nodes('/M') Split(a)) a
    LEFT JOIN dbo.Table2 b ON b.tagname = a.Tags)

SELECT ID, STUFF(
    (SELECT DISTINCT ',' + NULLIF(taglabel,'') FROM cte t2
        WHERE t1.id = t2.id FOR XML PATH(''), TYPE).value('.','VARCHAR(MAX)'),1,2,'') AS tags
FROM cte t1 GROUP BY ID ORDER BY ID
CREATE TABLE dbo.Table1 (
    ID tinyint PRIMARY KEY,
    Tags varchar(25))

CREATE TABLE dbo.Table2(
    tagname varchar(5) PRIMARY KEY,
    taglabel varchar(15))

INSERT INTO dbo.Table1 VALUES
(1, 'tag1,tag2,tag3,tag6'),
(2, 'tag2,tag4,tag5'),
(3, 'tag3,tag8,tag9,tag10'),
(4, 'tag1,tag2,tag6'),
(5, 'tag1,tag4,tag5')

INSERT INTO dbo.Table2 VALUES
('tag1', 'Nice Name Tag1'),
('tag2', 'Nice Name Tag2'),
('tag3', 'Nice Name Tag3'),
('tag4', 'Nice Name Tag4'),
('tag5', 'Nice Name Tag5'),
('tag6', 'Nice Name Tag6'),
('tag7', 'Nice Name Tag7'),
('tag8', 'Nice Name Tag8'),
('tag9', 'Nice Name Tag9'),
('tag10', 'Nice Name Tag10')
ID tags ---- ------------------------------------------------------------------ 1 Nice Name Tag1,Nice Name Tag2,Nice Name Tag3,Nice Name Tag6 2 Nice Name Tag2,Nice Name Tag4,Nice Name Tag5 3 Nice Name Tag10,Nice Name Tag3,Nice Name Tag8,Nice Name Tag9 4 Nice Name Tag1,Nice Name Tag2,Nice Name Tag6 5 Nice Name Tag1,Nice Name Tag4,Nice Name Tag5
CREATE TABLE tags (
    id mediumint,
    tag varchar(5),
    PRIMARY KEY (id, tag))

INSERT INTO tags (id, tag) VALUES
SELECT c.ID, Split.a.value('.', 'VARCHAR(100)') AS Tags FROM 
    (SELECT ID, CAST('<M>' + REPLACE(Tags,  ',' , '</M><M>') + '</M>' AS XML) AS Tag 
        FROM dbo.Table1) c
CROSS APPLY Tag.nodes('/M') Split(a)