2017-08-22 13 views
2

「market-used-new-ebook-rental_new-rental_used」のような印がついたフィールドがあります。「rental_new」は1ピースなどです。これはスティングのすべての可能な要素ですが、それらは任意の順序であり、1つ以上の部分を含むことができます。どのように私はこれを壊すので、私はすべての異なる組み合わせを説明することができますか?私はこのデータベースに関数を作成することもできません。sqlのnvarchar(max)データフィールドを解析する

+0

sqlのどのベンダーおよびバージョンですか? – ttallierchio

+0

SSMS 2014 SQLバージョン12.0。 –

答えて

3

あなたが本当に

  1. アプリケーション層で

  2. 仕事はそれを

を行うには、それに

  • 使用XMLを行うには、カーソルを書くください3つのオプションを持っています

    以下の例はXML用です

    注:XMLは、入力文字列にXML文字が含まれないことが保証できる場合にのみ使用できます。 1つの文字列が<、>または&であり、クエリが失敗します。

    SELECT distinct a.split_me 
    FROM 
    (
        SELECT cast('<X>'+replace('marketplace-used-new-ebook-rental_new- 
          rental_used','-','</X><X>')+'</X>' as XML) as xml_convert 
    )xml_data 
    CROSS APPLY 
    ( 
        SELECT fdata.D.value('.','nvarchar(50)') as split_me 
        FROM xml_data.xml_convert.nodes('X') as fdata(D) 
    ) a 
    

    SQLサーバー2016には、データをブレークアウトする機能が組み込まれていますが、これまでの3つのオプションの1つです。

  • 関連する問題