【SQL】UNIONする時に項目数は合っていてもデータ型が一致していないとエラーになる


タイトル通りの内容です。
お仕事でちょっと手こずったのでメモ的な意味でまとめてみます。


いくつかのSELECT文をまとめるために「UNION句」を使ったのですが、
そこでこんなSQLエラーが発生してしまいました。

ORA-01790: expression must have same datatype as corresponding expression


エラー文で検索してみると、参考になりそうなサイトさんが、そこによると。

式には対応する式と同じデータ型を持つ必要があります

とこんな内容のエラーのようです。
なるほど、型が違うものを同じ項目名にしてまとめようとするとエラーになってしまうのか。
実際にエラーが発生したSQLを調べてみると、確かにVARCHAR型とNUMBER型で同じ項目名にしちゃってました。

型が違うならキャストすればいいじゃない。
ということでこのあたりを参考にしながら

CAST( 【NUMBER型の列名】 AS VARCHAR(8) )

こんな感じでNUMBER型をVARCHAR型にキャストして一時解決…。

UNIONもCASTも初めて使いました…
まだまだ勉強が足りませんね(;´Д`)




参考にしたサイト様:http://javasystem.blog4.fc2.com/blog-entry-191.html


関連記事

コメントは受け付けていません。