sql common mistake of incorrect predicate orderConversion failed when converting varchar value 'abc' to data type int
2022-02-28 06:28:28
たとえば、次の Employee テーブルの場合。
select * from Employee where Edept like 'M%' and CAST(Ecode as Int)>100
しかし、上記のクエリを実行すると、エラーが発生します。
varchar 値 'abc' のデータ型 int への変換に失敗しました。
このクエリが失敗する理由は、まさに先に述べたとおり、述語の実行順序が指定されていないからです。この場合、2番目の述語を直接評価すると、そもそも変換エラーになります。
その代わり、ここではCASE式を使うことで、int型に変換されるのは正規のデータだけであることが保証されます。
select * from
Employee where Edept like 'M%' and CASE WHEN Ecode not like '%[^0-9]%' then CAST(Ecode as Int) END>100
関連
-
MYSQL "Access denied; you need (at least one of) SUPER privilege(s) for this operation" 問題解決
-
mysql reports Access denied; you need (at least one of) SUPER privilege(s) for this operation
-
ERROR 1046 (3D000)の解決策です。MySQLでアカウント削除時にデータベースが選択されない問題
-
Hibernateでhibernate.propertiesが見つからない問題とデータベース方言の更新の問題
-
IEntityChangeTracker の複数のインスタンスからエンティティオブジェクトを参照できない場合の対処法
-
[Mac] sudo mongod コマンド、プロンプトコマンドが見つかりません。
-
mysql: この操作には (少なくとも 1 つの) RELOAD 権限が必要です。
-
PostgreSQLのエラー[ERROR: relation "xxxx" does not exist]を解決する。
-
DB2v10.5Express-Cのインストール
-
mysqlの外部キー作成失敗の問題
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
この操作を行うには、少なくとも1つのSUPER権限が必要です。
-
解決方法 テーブルの定義が正しくありません。自動列は1つだけで、キーとして定義する必要があります。
-
Postgresql でテーブル "t" の FROM 句の項目が見つからない。
-
mongodbの更新操作の更新
-
ORA-65096 無効な共通ユーザー名またはロール名
-
PDOデータベース接続エラー。SQLSTATE[HY000] [2002] そのようなファイルやディレクトリはありません。
-
MySQL上級SQLステートメント
-
SSISエラーコード DTS_E_OLEDBERROR.an OLE DBエラーが発生しました。エラーコード 0x80040E21 備考
-
mysqlのエラーです。1406, データが長すぎてカラムに入りません
-
DB2におけるNULLおよびNULL処理