0

的SQL Server 2014逗號分隔值連接我在SQL Server 2014的兩個表:唯一值與每個ID

  1. current_entry
  2. data_by_client

我有兩列User_Skill 。我需要獨特的Skill值來根據用戶ID從select語句中的兩個表中連接起來。 String_Agg在SQL Server 2014中不起作用,所以我嘗試使用XML PATH。

請找的預期產出的附截圖:

enter image description here

這裏是SQL搗鼓它:SQL Fiddle

我用下面的XML路徑查詢:

SELECT 
    User_, Products + Skill 
FROM 
    (SELECT DISTINCT 
     User_, Skill, 
     (SELECT DISTINCT rs.Skill + ',' 
      FROM dbo.current_entry u 
      INNER JOIN dbo.data_by_client rs ON u.User_ = rs.User_ 
      WHERE rs.User_ = r.User_ 
      FOR XML PATH('')) AS Products 
    FROM  
     dbo.current_entry r) l 

我正面臨着問題,因爲我沒有得到預期的輸出。

回答

0

您可以嘗試使用foll來鍛鍊您的解決方案。方法:

SELECT 
    t1.user, 
    Item = stuff((SELECT (', ' + skill) 
         FROM #string_test t2 
         WHERE t1.user = t2.user 
         ORDER BY 1 
         FOR XML PATH('') 
        ), 1, 1, '')FROM #string_test t1 
GROUP BY user 

參考:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/4ac19fe5-be05-479f-bcc2-8fdfa6c1ae1f/pivot-string-concatenation?forum=transactsql

然後,您可以使用自定義的SQL函數刪除重複。參考http://blog.sqlauthority.com/2009/01/15/sql-server-remove-duplicate-entry-from-comma-delimited-string-udf/amp/

+0

nope ..不工作... – user1538020