sql >> データベース >  >> RDS >> Sqlserver

SQL Server で、特定の文字列が有効な XML かどうかを判断する最良の方法は何ですか?

    おそらく、有効な XML をチェックする必要はありません。適切な xml の存在を確認できます charindex のタグ case ステートメントで、substring を使用してエラー メッセージを抽出します。 .

    これは単純化された XML 文字列のサンプルですが、おわかりいただけたと思います。

    declare @T table(ID int, Col1 nvarchar(1000))
    
    insert into @T values
    (1, 'No xml value 1'),
    (2, 'No xml value 2'),
    (3, '<root><item>Text value in xml</item></root>')
    
    select
      case when charindex('<item>', Col1) = 0
      then Col1
      else
        substring(Col1, charindex('<item>', Col1)+6, charindex('</item>', Col1)-charindex('<item>', Col1)-6)
      end  
    from @T
    

    結果:

    No xml value 1
    No xml value 2
    Text value in xml
    


    1. SQLテーブルの作成中に制約を作成する他の方法はありますか?

    2. SQL Azure:サーバー上のデータベースXXXYYYは現在利用できません

    3. FROM ステートメントで変数を使用する

    4. PHPからMySQLユーザーとデータベースを作成する