请问这样的功能用SQL 怎么实现?

krukur 2018-12-02 04:35:32
我首先要查询用户所属的部门

select deptId from employee where id='00'

结果为:
“12,33,25”

deptId字段存放的是varchar类型,多个部门id用逗号隔开的

我现在要根据上面的部门编号一下查出所有的部门记录,就像下面的这样的语句的结果

select * from dept where id in ('12','33','25')

我现在是这样写的:

select * from dept where id in (select deptId from employee where id='00')

上面的语句不行,请问要实现这样的结果,怎么用sql语句一下就实现这样的功能?
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-12-02
  • 打赏
  • 举报
回复
--如果 dept 表的 id 字段是 int 或 bigint 类型, 可以用下面的
SELECT *
FROM   dept AS a
WHERE  EXISTS(
    SELECT 1
    FROM   employee AS b
    WHERE  b.id = '00' AND ','+b.depId+',' LIKE '%,'+ LTRIM(a.id)+',%' 
)
krukur 2018-12-02
  • 打赏
  • 举报
回复
谢谢,两位大神
吉普赛的歌 2018-12-02
  • 打赏
  • 举报
回复
SELECT *
FROM   dept AS a
WHERE  EXISTS(
    SELECT 1
    FROM   employee AS b
    WHERE  b.id = '00' AND ','+b.depId+',' LIKE '%,'+ a.id+',%' 
)
mengmou 2018-12-02
  • 打赏
  • 举报
回复
DECLARE @deptid VARCHAR(MAX)

SELECT @deptid = ',' + deptId + ',' FROM employee WHERE id='00'

SELECT * FROM DEPT WHERE CHARINDEX(','+CONVERT(VARCHAR(10),id)+',',@deptid ) > 0

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧