私はSQL Server 2008 R2で作業しています。キーワードがSQL Serverで正しく機能していませんか?
次のクエリ:
select alloted_area
from tbllogin
where nid = 82
戻り、この
alloted_area
1,101,1002,79,365,297
次のクエリ
select *
from tblarea
where nid in (1, 101, 1002, 79, 365, 297)
戻り、この
nid area_name
------------------
1 RAJASTHAN
101 RAJASTHAN
79 RAJASTHAN
297 RAJASTHAN
365 RAJASTHAN
1002 RAJASTHAN
しかし、次のクエリ
select *
from tblarea
where nid in (select alloted_area from tbllogin where nid = 82)
は、このエラーを生成します。
Conversion failed when converting the varchar value '1,101,1002,79,365,297' to data type int
私は何をすべき?
おそらく、コンマ記号に基づいてalloted_areas
の行をtbllogin
にする必要があります。それ、どうやったら出来るの?
コメントで示唆したように、データをコンマ区切りの値として保存しないようにしましたが、それはその情報を格納するテーブル全体を作成することを意味します。私の状況で希望の結果を達成できる方法はありますか?
データをコンマ区切りted値。それはあなたに多くのトラブルを引き起こすだけです! – jarlh
'IN'が正しく動作しています。あなたがやっていることは 'nid = cast('101,1002,79,365,297 'int)'と同じですが、もちろん動作しません。 –