1
Xpathのみを使用してSQLサーバーの空のXMLタグからnullを返す方法は?
レコードに関するさまざまなユーザー定義データポイントをXML列に格納するアプリケーションがあります。これらがどのように保存または更新されるかは、私には制御できません。 列をクエリすると、3つの値のいずれかが返されます。 値 ヌル 空の文字列 $ 64質問 xpathを使用して、空の文字列をnullとして返したいのですが。 nullを空の文字列として返すことに関する多くの答えを見つけましたが、この方法では何も起こりません。 それらは、誰かが値を削除したときにそのようになり、タグを削除するのではなく、タグにブランクになり<value />ます。nullは、値が設定されていない場合に発生します。xsi:nilは含まれていません。 私はケースステートメントでそれをしました: select so.SalesOrderId, Case when sopc.value('(Value)[1]','smalldatetime') IS null then Null when sopc.value('(Value)[1]','smalldatetime') ='' then Null Else sopc.value('(Value)[1]','smalldatetime') End as sopc From SalesOrders so Outer apply so.CustomColumns.nodes('/CustomColumnsCollection/CustomColumn[Name="ProjCompleted"]') sopc(sopc) しかし、これは非効率に感じられ、これが唯一の列ではないため、コードが長くなり、保守が難しくなります。 編集してサンプルデータを含めます SalesOrderId CustomColumns SO 1 "<CustomColumnsCollection> <CustomColumn> <Name>ProjCompleted</Name> <DataType>1</DataType> <Value /> …