[解決済み] データ型 varchar の変換エラー
質問
私は現在、次のようなカラムを持つテーブルを持っています。
varchar
. このカラムには、数値やテキストを格納することができます。あるクエリでは、これを
bigint
のカラムと結合している)。
bigint
)
このフィールドに数字がある限りは問題ありませんでしたが、1行でもこのフィールドに数字ではなくテキストがあると、"Error converting data typeが表示されました。
varchar
を
bigint
."エラーは、WHERE部分でどのテキストフィールドも表示されないことを確認しても発生します。
これを解決するために、次のようなビューを作成しました。
SELECT TOP (100) PERCENT ID, CAST(MyCol AS bigint) AS MyCol
FROM MyTable
WHERE (isnumeric(MyCol) = 1)
しかし、ビューには数値を持つ行だけが表示され、Mycol を bigint にキャストしているにもかかわらず、このビューには データ型 varchar から bigint への変換エラー を実行すると、以下のクエリが表示されます。
SELECT * FROM MyView where mycol=1
ビューに対してクエリを実行するとき、ビューの背後で何が起こっているのかを知ってはいけません!単に2つの大きな数値フィールドを見るだけでいいのです。( 添付画像参照 mssql management studioでもビューフィールドはbigintと表示されます)
解決方法は?
OKです。やっと動くビューを作りました。
SELECT TOP (100) PERCENT id, CAST(CASE WHEN IsNumeric(MyCol) = 1 THEN MyCol ELSE NULL END AS bigint) AS MyCol
FROM dbo.MyTable
WHERE (MyCol NOT LIKE '%[^0-9]%')
ありがとうございます AdaTheDev と コード・バイ・ムーンライト . お二人の回答を参考にさせていただきました。(もちろん他の回答者の方々にも感謝します)
現在、他のbigint colsと結合したり、'SELECT * FROM MyView where mycol=1'のようなことをすると、エラーなしで正しい結果を返します。私の推測では、クエリ自体のCASTが、Christian Hayterが他のビューで起こっているかもしれないと言ったように、クエリオプティマイザが元のテーブルを見ないと言う原因になっているのではないかと思います。
関連
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しない
-
[解決済み】テキストが切り捨てられた、または1つ以上の文字がターゲットコードページで一致しない アンピボットの主キーを含む
-
[解決済み】BULK INSERTで「予期せぬファイルの終了」エラーが発生したROWを特定する?
-
[解決済み] テスト
-
[解決済み] テスト
-
[解決済み】sys.dm_exec_sql_textはどのように機能するのでしょうか?
-
[解決済み] MySQL エラー: キーの長さがないキー指定
-
[解決済み] リンクされたサーバーの NULL に対して OLE DB プロバイダー Microsoft.Jet.OLEDB.4.0 のインスタンスを作成できません。
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] varcharとnvarcharの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み】データベースへの「ネイティブ」SQL接続を使用するとはどういう意味ですか?
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] mongoの外部キー?
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法
-
[解決済み] トリガーがコンパイルエラーで作成される
-
[解決済み] VBA - ADODB.CommandTextの実行