sqlserverで書式チェックしたい

さまよい
2014-07-09 12:28 1563 1
sqlserver2008,2012を使用しています。
あるフィールドの値が、"999-999"の書式になっているかチェックを行いたいのですが、
SQLで簡単にチェックできますか?
文字列(nvarchar)エリアで、
3桁の数値+'-'+3桁の数値 以外のデータを抽出したいと思っております。
どなたかご教授お願いします。

コメント

2014年 07月 14日 (17:27)
こんにちは。
イノ(inno)です。

LIKE句に'[0-9][0-9][0-9]-[0-9][0-9][0-9]'を使えばできると思います。

[0-9]は一文字が0~9までの文字に制限をかけます。
つまり数字のみ検索できるようにとの意味です。

では、下記の例文を作成しましたので、ご参考の上、実行して結果を確認してください。

-- #### テスト用テーブル作成
CREATE TABLE dbo.TempData
(
StrVal varchar(10)
)

-- #### テスト用データを登録
INSERT INTO dbo.TempData
SELECT '111-111' union all
SELECT '1a1-111' union all
SELECT '111-1a1' union all
SELECT '222-222' union all
SELECT '333-999' union all
SELECT '000-000'

-- #### 結果
SELECT * FROM dbo.TempData
WHERE StrVal NOT LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]'