2017-03-10 22 views
0

我在SQL Server中有一個存儲來自博客的信息的表,因此每個記錄都是一個帖子。其中一列存儲與每個帖子相關的標籤。如何爲列中的每個字符串生成超鏈接標記以創建標記雲

我需要爲存儲在該列中的每個標記創建一個標記,它們以逗號「,」分隔。

例如:對於記錄1,「標籤」列存儲「汽車,飛機,船隻」。

我需要生成基於SELECT命令列,將寫:

<a href="blog-tags.aspx?tag=cars">cars<a><a href="blog-tags.aspx?tag=planes">planes</a><a href="blog-tags.aspx?tag=boats">boats</a> 

任何幫助,將不勝感激!謝謝

回答

1

如果在數據和用戶之間存在某種編碼層,那麼最好在編碼層中這樣做。

如果你真的必須在SQL做到這一點,你可以先列轉換成一個單獨的臨時表中,然後用臨時表連接(並據此選擇)

INSERT INTO #tempTable(primaryKey, data) 
SELECT yt.primaryKey, s.data 
FROM 
    YourTable yt 
inner join dbo.Split(yt.tags, ',') s 

上的分裂功能依賴如這裏找到:split function(這是不是一個非常快的一個......但就足夠了)

然後....

Select yt.*, 
'<a href="blog-tags.aspx?tag=' + t.data + '">' + t.data + '<a>' as Link 
from 
    YourTable yt 
inner join #tempTable t on yt.PrimaryKey = t.PrimaryKey 
相關問題