sqlserver:如何截取字符串后联合查询出数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver:如何截取字符串后联合查询出数据相关的知识,希望对你有一定的参考价值。

查询语句:select NodeId from RoleRight where RoleId=1
值:NodeId:1,3,4,8,9,10,2,5,6,7,11,12,13,14,15
查询语句:select menuId,menuName from MenuBar
值:

我想要的是:通过截取出nodeId,然后去匹配menuBar表中的MenuId,如果遍历出的nodeid=menuId,就把menubar表中数据查出来
怎么先把nodeId给截取出来,1,3,4,8,9,10,2,5,6,7,11,12,13,14,15转换成
1
3
4
8
9
10...

联合查询:
select menuId,menuName from MenuBar where MenuId in
(select NodeId from RoleRight where RoleId=1)
参考技术A 联合查询等值链接

sqlserver两个数据库联合查询

从A数据库读取医嘱,到B数据库定时提醒表,过滤已经读取过到ID

 

SELECT  a.Id 医嘱ID ,
        a.MedordType 类目 ,
        a.InhosID 住院号 ,
        a.ExecOfficeID 科室编码 ,
        a.StartTime 开始时间 ,
        c.PatientName 姓名 ,
        d.Office 科室名字
FROM    数据库A.dbo.Mst_LongDoctorAdvice a --LEFT JOIN NEWHISMessageWarning.dbo.MessageWarning b ON 1 = 1
        LEFT JOIN 数据库A.dbo.BaseCom_Patient c ON a.InhosID = c.Diagnoseid
        LEFT JOIN 数据库A.dbo.BaseCom_Office d ON d.Officeid = a.ExecOfficeID
WHERE   a.Id NOT IN ( SELECT    yzID
                      FROM      数据库B.dbo.MessageWarning
                      WHERE     yzlx = 1 );
                      
SELECT  a.Id 医嘱ID ,
        a.MEDORDTYPE 类目 ,
        a.INHOSID 住院号 ,
        a.EXECOFFICEID 科室编码 ,
        a.STARTTIME 开始时间 ,
        c.PatientName 姓名 ,
        d.Office 科室名字
FROM    数据库A.dbo.Mst_TempDoctorAdvice a --LEFT JOIN NEWHISMessageWarning.dbo.MessageWarning b ON 1 = 1
        LEFT JOIN 数据库A.dbo.BaseCom_Patient c ON a.INHOSID = c.Diagnoseid
        LEFT JOIN 数据库A.dbo.BaseCom_Office d ON d.Officeid = a.EXECOFFICEID
WHERE   a.Id NOT IN ( SELECT    yzID
                      FROM      数据库B.dbo.MessageWarning
                      WHERE     yzlx = 2 );

 

以上是关于sqlserver:如何截取字符串后联合查询出数据的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver多表联合查询

如何在数据库中查询出重复记录

oracle数据库里面查询时间并截取字段

sqlserver 字符串截取

关于sqlServer2005数据库字符串的截取?

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗