2016-08-08 4 views
-4

私はレジュメをプレーンテキストで含むcsvファイルを持っています。テキストフィールドをテキストからHTMLコードに変換する必要があります。例えばHTML形式のテキストを返すSQLサーバー

プレーンテキスト:

Head 

Line2 
Line3 
Line4 

を変換:

<p>Head</p> 

<p>Line2<br /> 
Line3<br /> 
Line4</p> 

をSQL Serverの機能がこれを行うことができますすることはできますか?私はすでに同様の機能を実行できるオンラインツールhttp://www.textfixer.com/html/convert-text-html.phpを見ましたが、少なくとも1300行のファイルをcsvファイル内で再開する必要があります。

ありがとうございます!

+0

PARTITON BY 1を置き換える存在する場合は[はいSQL関数は、おそらくそれを行うことができます。より詳細な情報が必要な場合は、最初に私たちに提供する必要がありますので、実際に何をしようとしているのかを知る必要があります。 –

+0

あなたは何をしたいのですかストアドプロシージャを書く努力をしてみませんか? – Missy

+0

これはrow_number()とcteまたは入れ子になったクエリを使って簡単に行うことができます。私の質問は、

のヘッド

を何度も何回にするのかを知るために、1,300行をどうやって破るのですか? csvを一時テーブルに読み込んだり、行セットを開いたりすることはできますか? – Matt

答えて

0

私はあなたがテンポラリテーブルにcsvを置くことができると思います。あるいは、オープンな行セットなどを使用してcsvに対してこれを書き込むこともできますが、ここであなたが望むエンコーディングを得る方法のアイデアです。複数の履歴書は​​

;WITH cteOriginalRowNumber AS (
    SELECT 
     Line 
     ,ROW_NUMBER() OVER (PARTITION BY 1 ORDER BY (SELECT 0)) as OriginalRowNum 
    FROM 
     CSVSource 
) 

, cteReverseRowNumber AS (
    SELECT 
     Line 
     ,OriginalRowNum 
     ,ROW_NUMBER() OVER (PARTITION BY 1 ORDER BY OriginalRowNum DESC) as ReverseRowNum 
    FROM 
     cteOriginalRowNumber 
) 

SELECT 
    CASE 
     WHEN 
      OriginalRowNum = 1 
      OR (OriginalRowNum = 2 AND ReverseRowNum = 1) 
      THEN '<p>' + Line + '</p>' 
     WHEN OriginalRowNum = 2 THEN '<p>' + Line + '<br />' 
     WHEN OriginalRowNum > 2 AND ReverseRowNum = 1 THEN Line + '</p>' 
     ELSE Line + '<br />' 
    END 
FROM 
    cteReverseRowNumber 
ORDER BY 
    OriginalRowNum 
関連する問題