• ベストアンサー

sqlserverで書式チェックしたい

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

noname#208236
noname#208236

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

SELECT * FROM table WHERE field NOT LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]'

参考URL:
http://msdn.microsoft.com/ja-jp/library/ms179859.aspx
noname#208236
質問者

お礼

ありがとうございました。 早々のお返事のおかげで大変助かりました。

関連するQ&A

  • Accessでのリンクテーブルについて

    Access2007でSQLServer2005のテーブルのリンクを張っています。 このリンクテーブル内のnvarchar型のフィールドをクエリでint型へ変換したいのですが、CInt(対象フィールド)としてもオーバーフローが発生していまいます。 nvarchar型のフィールドの内容は8桁の数字で、SQLServer側では変換できています。 Accessではnvarchar型の変換はできないのでしょうか? 変換したビューを引っ張ることも考えましたが、そのクエリ以外では文字列として扱いたいので、できればクエリ内で変換したいのですが・・・。 どなたか解決方法をご存じでしたら教えてください。 お願いします。

  • 文字数チェック

    <環境> Sqlserver2005 フィールドにある特定文字列が何文字存在するか抽出できる方法はありますか? 例えばこんな感じです。 郵便番号フィールドから文字列"-"が何文字存在するか 郵便番号      結果 09099999999     0 090-99999999    1 090-9999-9999   2 090-99-99-999   3

  • エクセルの条件つき書式を別のセルに適用させる

    お世話になっております。m(_ _)m エクセルに「条件つき書式」という機能があります。 これは、「設定をしたセルの書式」を制御するものですが、条件の指定に使うセルと書式を設定したいセルが別の場合は、どのようにすればよいのでしょうか?可能なのでしょうか? やりたいことは、A1のセルに入っているデータが8桁なら書式を「00000000(ゼロ8個)」とし、9桁なら「000000000(ゼロ9個)」というようにしたいのです。 このような設定をしなければならない理由は、このセルに入るデータは桁数が8桁か9桁で、数字か文字か決まっていないデータが入ります。 例)00123445   E0123456   012345678   Z12345678 等 「E0123456」や「Z12345678」が入る場合は文字列としてデータが扱われてもかまわないのですが、「00123445」や「012345678」は「数値」として扱いたいのです。 「00123445」の場合、数値としてこの数字を表示したければ書式を「00000000(ゼロ8個)」とすればよいと思います。 しかし、このセルには9桁の「012345678」というデータが入る可能性があります。このデータも数字として扱いたいので「000000000(ゼロ9個)」とすればよいとなります。 しかし、ゼロ9個の書式設定をしてしまうと、8桁の数字が「000123445」と表示されてしまいます。それでは困ります。 8桁は8ケタ、9桁は9ケタで、0から始まる数字を表示したい場合、どのようにすれば表示できるでしょうか? 長くなりましたが回答をお願いします。

  • Oracle8での数値チェック

    現在、Oracle8.1.7で開発しております。 検索する条件として、『数値かどうか』または『文字列かどうか』 という判断を行いたいのですが可能でしょうか? やりたい事は、以下のデータの右から2桁目が数値となっているものと 文字列になっているものとを区別したいのです。  ○○○○-A01  ○○○○-C99  ○○○○-AB1  ○○○○-Z21     : 設計上、すべてのフィールドは『VARCHAR2』となっています。 よろしくお願いしますm(_ _)m

  • 文字列分割して、ソート出来ますか?

    SQL内で文字列を分割して、その値でソートすることは出来ますか? データ) First Name + Last Name が1つのフィールドに入っている。 リストアップ) Last Nameのみを抽出して、ソート。 こんなことは可能でしょうか?

  • SQLServer2000 で、SQLの書き方

    SQLServer2000上のデータ抽出方法について教えて下さい。 例えばデータとして・・・  カラム名: 品番 販売開始日 販売終了日  データ1 : A01 2011/01/01 2011/03/31  データ2 : A02 2011/02/01 2011/05/31  データ3 : A03 2011/04/01 2011/06/30 とします。 今、期間の入力として、 開始日:2011/03/01 終了日:2011/03/31 とした場合、この期間内にあるデータを抽出したいです。 答えは、A01 と A02 が指定期間内にあるので抽出されるSQLを教えて下さい。 (言いかえれば、指定期間内に掛っている情報の抽出です) どなたか、ご教授お願いします。

  • Access2003にてあるフィールドのデータ型を

    Access2003にてあるフィールドのデータ型を 『数値型:単精度浮動小数点型』にして書式を『固定(0.00)』 にしてデータ格納しているのですがExcelVBAでSQL(SELECT文)を使って抽出すると すごい桁数(小数点以下)で出てきます どのようにすれば小数点以下2桁でデータ取得できますか?

  • SQLServer2000:SQL文の記述について

    いつもお世話になっております。 SQLServer2000でSQL文で素朴な疑問なのですが、 質問が3点ございます。 1:列の追加 ALTER TABLE 文で、フィールドを追加する際に、 "]"(かぎ括弧閉じ) がフィールド名に存在する場合、どのように記述すればよいのでしょうか。 2:レコードの追加 INSERT 文で追加するレコードの文字列中に "'" (シングルクオテーション) が値に存在する場合、どのように記述すればよいのでしょうか。 3:列の削除 ALTER TABLE でフィールドを削除する際に、 "#"(シャープ) がフィールド名の先頭に存在する場合、どのように記述すればよいのでしょうか。 ご存知の方がいらっしゃいましたら、 ご回答をよろしくお願いいたします。

  • 【Excel】セルの書式設定で標準と文字列の違い

    「セルの書式設定」の「表示形式」での「標準」と「文字列」の違いについてです。 「文字列」は「[文字列]は、数値も文字列として扱います。セルには入力した値がそのまま表示されます」 とあります。 しかし「文字列」に数値を入力するとセルの左上に、グリーンの▼印がでてきて、「数値が文字列として保存されています」というエラー表示がでます。 数値も文字列として扱われるはずですがなぜなのでしょう。いちいち「エラーを無視する」にしなければならないので面倒だなと思いますので、今度は「標準」で入力しようと思いますが、 「標準」は「セルの値に対して一般の書式を適用します(特定の書式を指定しません)」 とのことです。一般の書式、特定の書式が何を指すのか分かりません。 文字列が、数値として扱われない理由と、「標準」「文字列」のそれぞれの特徴を教えてください。

  • sqlserver2008 r2について

    お世話になります。 現在SQLSERVER 2008R2 とvisualbasic2010を使用し、データベースの勉強をしています。 教科書は、visualbasic2005による[実践]データベースプログラミング 谷尻かおり氏著を 使用しています。 テキストボックスに抽出条件を入れると特定のレコードを抽出したいのですが SQL Serverの抽出条件のパラメータについて分からないのでご教示願います。 教科書P47ではSQLServerの場合は「@GoodsID」とする事で、テキストボックスの 値をいれられると私は認識したのですが、うまくレコードを抽出することができません。 アクセスでは LIKE ? & '%' SQLserverでできるかなと思った私の考え LIKE @GoodsID & '%' どうすればレコードが抽出できるでしょうか? 以上よろしくお願いします。