2017-09-21 8 views
0

からすべてのURLを選択し、列はHTMLコンテンツ(ページ)SQL Serverは、私は列のすべてのリンクを選択しようとしている列

ですこれは私がこれまで

declare @col nvarchar(MAX) ; 
set @col = (select Content from bg_landingPage) 

select SUBSTRING(@col, LEN(LEFT(@col, PATINDEX ('http://', @col))) + 1, LEN(@col) - LEN(LEFT(@col, 
      CHARINDEX ('/', @col))) - LEN(RIGHT(@col,LEN(@col) - CHARINDEX (' ', @col))) - 1) 

ので、持っているものです列(Htmlページ)に複数のリンクがある可能性があります。

サブクエリが2つ以上の値を返しました。 サブクエリが、=、!<、< =、>、> =、またはサブクエリが式 として使用されている場合は、これは許可されません。

どのように私は1つの列のテーブルの道

LINK


http://exemple1 http://exemple2

の結果はありがとうござい得ることができます。

+3

カーソルを使用していることは本当に解決策ではないかもしれないが、1列内の複数の値がある場合は、テーブルのスキームを再考すべきである - これは違反します[最初の正規形](https://en.wikipedia.org/wiki/Database_normalization) –

+0

期待される出力は? SQL Serverの正規表現サポートは非​​常に貧弱であることに注意してください。 –

+0

@TimBiegeleisenは本当にCLRの統合によって既存の.net regexを追加できます。 MSは、AFAIKの性能に関する考慮事項のために、デフォルトで追加しないことを選択しました。 – Serg

答えて

0

このエラーは、bg_landingpageの複数のレコードによって発生します。

代わりに以下のコードを試してください。

select top 1 @col = Content from bg_landingPage 
0

私が行ったことは、コンソールアプリケーションを作成し、C#ですべての処理を行ったことです。

私はSQLコマンドを使用してテストしてみた第二の方法、

関連する問題