2017-03-10 4 views
0

SQL Serverにブログの情報を格納するテーブルがあるので、各レコードは投稿です。列の1つに、各投稿に関連するタグが格納されます。タグクラウドを作成するために、列内の各文字列にハイパーリンクタグを生成する方法

その列に格納されているタグごとにタグを作成する必要があります。タグはコンマ '、'で区切られています。

例:レコード1の場合、「タグ」列には「車、飛行機、ボート」が格納されます。

<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> 

すべてのヘルプは高く評価されるだろう:

は、私はこれを書きますSELECTコマンド時に列を生成する必要があります!ありがとう

答えて

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 
(非常に速いものではありません...しかし、十分であろう)
関連する問題