SELECT *
FROM qx
WHERE (CONVERT(varchar(4), qxs) IN
(SELECT groupqx
FROM usergroup
WHERE groupname = '管理员'))
这句话不能返回数据。
qxs是int类型的
groupqx是varchar类型的
我这样转换过来应该是没错的吧
如果我把IN后面的换成(1,2,3,4)这样的就可以返回了另外IN后面的select返回的是1,2,3,4,5,6这样的
应该没错吧 怎么就不能得到返回记录呢?谢谢!!!!
FROM qx
WHERE (CONVERT(varchar(4), qxs) IN
(SELECT groupqx
FROM usergroup
WHERE groupname = '管理员'))
这句话不能返回数据。
qxs是int类型的
groupqx是varchar类型的
我这样转换过来应该是没错的吧
如果我把IN后面的换成(1,2,3,4)这样的就可以返回了另外IN后面的select返回的是1,2,3,4,5,6这样的
应该没错吧 怎么就不能得到返回记录呢?谢谢!!!!
FROM qx
WHERE (qxs IN
(SELECT convert(int,groupqx)
FROM usergroup
WHERE groupname = '管理员'))
FROM qx
WHERE qxs IN
(SELECT convert(int,groupqx )
FROM usergroup
WHERE groupname = '管理员'))
http://topic.csdn.net/u/20080728/17/0cdb96bc-9817-4570-8039-fcba3b156be4.html最后一点
SELECT * FROM qx
WHERE qxs IN
(SELECT groupqx FROM usergroup
WHERE groupname = '管理员')
你先说下这个字段里存放的的数据是怎样的
distinct q.*
from
qx q,usergroup u
where
charindex(','+rtrim(q.qxs)+',' , ','+u.groupqx +',')>0
and
u.groupname = '管理员'
呵呵
SELECT A.* FROM qx A
LEFT JOIN usergroup B
ON groupname = '管理员' AND CHARINDEX(','+A.QXS+',',','+B.groupqx+',')>0
declare @SQL varchar(2000)
declare @groupqx varchar(200)SELECT @groupqx =groupqx FROM usergroup WHERE groupname = '管理员' set @SQL = 'SELECT * FROM qx WHERE qxs IN (' + @groupqx + ')'exec(@SQL)或者就是在VB、C#等客户端程序中拼SQL字符串来执行。