0

SQL 列から特定のパターンのみを選択する必要があります。XML 型の列ですが、XML としてフォーマットされていません。1 つのレコードのフィールドに含まれる内容の例を次に示します。

taSopDistribution
i   3
s   W-13-I73516502
:d:
i   7
:d:
:d:
s   60-99-9999-99-20950-00
m   0
m   5.8800
s   W-13
:d:
:d:
:d:
:d:
:d:
:d:
s   60-99-9999-00-60950-00

このフィールドをクエリして、次のパターンに従うデータのみを選択できるようにする必要があります: ##-##-####-##-#####-##、複数の一致があります。

たとえば、上記のデータ フィールドの例から次の値を返すクエリが必要です。

60-99-9999-99-20950-00
60-99-9999-00-60950-00

これに関する助けがあれば大歓迎です!参考までに、SQL Server 2012 を使用しています

4

1 に答える 1

0

これはトリックを行うことができます:

SELECT substring(taSopDistribution,5,len(taSopDistribution)-5)
FROM Table1
WHERE taSopDistribution
LIKE '%-__-____-__-_____-__'

結果

|              COLUMN_0 |
|-----------------------|
| 60-99-9999-99-20950-0 |
| 60-99-9999-00-60950-0 |

SQLFIDDLEを参照してください

于 2013-08-31T23:34:46.717 に答える