关于嵌套查询的问题。
qzb:群组表
qzmc:群组名称
yhb:用户表
yhm:用户名
qzb中有qzmc,yhb中也有qzmc。
以下代码用Access数据库时一切正常,但换成SQL Server2000后,如果用户名是英文一切正常,但用户名是汉字时查不出结果。
select * from qzb
where qzmc=(select qzmc from yhb where yhm=:yhm)
起先我想是不是数据类型的问题,因为qzmc,yhm用的是varchar。但改为nvarchar后结果还是一样。
害的我只有分开两段写才解决问题:
select qzmc from yhb
where yhm=:yhm
..........
select * from qzb
where qzmc=:qzmc
..........
为什么会这样,请高手指教。谢谢!
[解决办法]
子查询若返回的只有一个值,则没有错,改成这下面这样吧
select * from qzb
where qzmc=(select top 1 qzmc from yhb where yhm=:yhm)
或
select * from qzb
where qzmc in (select qzmc from yhb where yhm=:yhm)
[解决办法]
不用参数,直接拼凑sql,结果对不对?
[解决办法]
应该是字符集的问题,楼主可更改一下字符集。
[解决办法]
能说下错误提示吗
[解决办法]