こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

結合で、条件左右で型が違った時エラーにならない方法

いつも大変お世話になっております。
よく分かっていなくて申し訳ありません。

SELECT … FROM A Right Outer Join B B on B.c =A.d  というようなSQL文で
B.cはvarcharでA.dはintです。
B.cは大多数の場合は数値なので動くのですが、稀に文字列が入ったときにエラーになってしまいます。
ここでエラーにならずに、そこで呼ぼうとしたものがなければNullになるようなよい方法がありましたら、ご教示いただけますと幸いです。

以下の添付画像のような結果を得られると幸いです。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2012-08-30 21:47:50

QNo.7672249

すぐに回答ほしいです

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

SELECT … FROM A Right Outer Join B B on B.c =Convert(varchar(10),A.d)
varchar(10),は、 B.cの型にあわせる。

ただし、
今までは暗黙の型変換で、数値に変換されていたから条件が成立していたケースで条件が成立しない
場合がでてくるかもしれません。
例)
B.cが' 1'で、A.dが1のとき、
数値に変換されると、どちらも1ですが、
文字に変換すると、
B.cが' 1'で、A.dが'1 'になって等しくならないかも。

というようなことがおきたら、
on trim(B.c) = trim(Convert(varchar(10),A.d))
trim()を利用してください。

投稿日時 - 2012-08-30 22:15:31

お礼

できました。
良い手段をありがとうございます。
助かりました。

投稿日時 - 2012-08-30 23:01:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問