2017-01-22 1 views
1

テキストの束から特定の数値書式を見つけるには、基本的には:
4桁の数字ですが、両端に後続のスペースがある数字以外は始まり、終わらない場合もあります。特定の数値書式を検索するためのSQL WHERE句の正しい文は何ですか?

私はこれを使用していますが、動作していないよう:動作するはずです

WHERE description LIKE '% [^0-9][0-9][0-9][0-9][0-9][^0-9] %' 

サンプルデータ:

THIS IS A TEST 1234 THIS IS A TEST 
THIS IS A TEST (1234) THIS IS A TEST 
THIS IS A TEST A1234B THIS IS A TEST 

動作しないでくださいサンプルデータ:

THIS IS A TEST 12345 
THIS IS A TEST12345THIS IS A TEST 
THIS IS A TEST NO.1234 THIS IS A TEST 
+0

動作しないサンプルデータを表示してください。 –

+0

私は考えることができるいくつかのデータを更新しました –

+0

最初の例は間違いなく 'スペース'、 '非数字'、 '4数字'と一致しますが、次の2つは間違いありません。それはあなたの期待ですか? 「うまくいかない」とは、あなたの問題の不完全な定義です。 –

答えて

0

をこれは、テストケースを動作させる唯一の方法です。

SELECT * 
FROM (
VALUES 
(1,'THIS IS A TEST 1234 THIS IS A TEST '), 
(2,'THIS IS A TEST (1234) THIS IS A TEST'), 
(3,'THIS IS A TEST A1234B THIS IS A TEST'), 
(4,'THIS IS A TEST 12345'), 
(5,'THIS IS A TEST12345THIS IS A TEST'), 
(6,'THIS IS A TEST NO.1234 THIS IS A TEST') 
) A(id,description) 
WHERE (
description LIKE '% [^0-9][0-9][0-9][0-9][0-9][^0-9] %' OR 
description LIKE '% [0-9][0-9][0-9][0-9] %' 
) 
関連する問題