sql字段为逗号分开的字符串值的关联查询
1.TREE表:
[strID] [int] IDENTITY(1,1) NOT NULL,
[strName] [nvarchar](50) NOT NULL,

2.SubInfo
CREATE TABLE [dbo].[SubInfo](
[SuBID] [int] NOT NULL,
[SubTreeID] [nvarchar](max) NULL,

SQL语句为:
select a.strID,a.strName from Tree as a where exists(select * from SubInfo where charindex(cast(a.strID as varchar(max))+',',SubTreeID)>0)
这里红色加的分号必须要加上,不然的花,如果是215,连21也会区配.
查询后结果为:

如果SubTreeID:1,2,3,215则select a.strID,a.strName from Tree as a where exists(select * from SubInfo where charindex(cast(a.strID as varchar(max)),SubTreeID)>0)
查询结果为
本来21为思茅的是不应该查询出来的,所以要叫逗号来处理
4.select a.strID,a.strName,b.* from Tree as a join SubInfo as b on charindex(cast(a.strID as varchar(max))+',',SubTreeID)>0
这个是把SubInfo 表的数据也显示出来
结果为:

sql字段为逗号分开的字符串值的关联查询的更多相关文章
- 某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值
存在值信息 表值函数实现: --实现split功能 的函数 拆分 逗号分开的多个值 ),)) )) as begin declare @i int set @SourceSql=rtrim(ltrim ...
- sql分割以逗号隔开的字符串
--创建存储过程 IF EXISTS (SELECT * FROM sysobjects WHERE name='GetSplitString' AND xtype='p') DROP PROCEDU ...
- MyBatis-Plus不写任何resultMap和SQL执行一对一、一对多、多对多关联查询
对于一对一,一对多的关联查询,Mybatis-Plus官方示例(mybatis-plus-sample-resultmap)在处理时,需要编写查询方法及配置resultMap,并且写SQL. 为了简化 ...
- SQL多个逗号分开的字段值 取对应的数据名称信息
字段值 函数实现: )) ) as begin set @strs=','+@strs+',' ) ) set @str2='' declare SyncOrderCursor cursor for ...
- oracle实用sql之将逗号分割的字符串分割多个列
select regexp_substr('a,b,c,','[^,]+',1,rownum) from dual connect by rownum<=length(regexp_replac ...
- SQL Server使用 LEFT JOIN ON LIKE进行数据关联查询
这是来新公司写的第一篇文章,使用LEFT JOIN ON LIKE处理一下这种问题: SQL视图代码如下: CREATE View [dbo].[VI_SearchCN] AS --搜索产品的文件 ( ...
- 关联映射、关联查询【重点掌握一条SQL语句的那种方法】
1 什么叫关联映射 通过数据库对象之间的关联关系(一对一.一对多.多对多),反映到实体对象上之间的引用. 举例 用户实体类(User):user_id user_name user_token 笔记本 ...
- Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”.想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5. 一.最终实现的sql语 ...
- sql字段拆分 ,连表子查询获取值
1.连表子查询获取值 select bas.name,bas.id_card_num,bas.mobil_no,gender,bas.birthday,bas.height,bas.weight,pr ...
随机推荐
- Linux x86和x64的区别
0x01:寄存器分配的不同 (1)64位有16个寄存器,32位只有8个.但是32位前8个都有不同的命名,分别是e _ ,而64位前8个使用了r代替e,也就是r _.e开头的寄存器命名依然可以直接运用于 ...
- 【CSS】Houdini, CSS的成人礼
前情提要 CSS:老板,你看ES9,ES10都出来了,您看我的事情什么时候... W3C: 这不是正在走着流程嘛!小C你不要心急! W3C:(语重心长)你看啊,我们先(1)提个开发提案章程, 然后再批 ...
- OpenXML性能真的低下吗?
博文NET导出Excel的四种方法及评测 中对比了4个库的导出性能,但对OpenXML的评价并不高,本人觉得不合理,所以我重新测试下性能 基于OpenXML的包装类 ExcelDownWorker p ...
- C#简单爬取数据(.NET使用HTML解析器ESoup和正则两种方式匹配数据)
一.获取数据 想弄一个数据库,由于需要一些人名,所以就去百度一下,然后发现了360图书馆中有很多人名 然后就像去复制一下,发现复制不了,需要登陆 此时f12查看源码是可以复制的,不过就算可以复制想要插 ...
- Selenium3 + Python3自动化测试系列十——调用JavaScript代码
调用JavaScript代码 一.调用JavaScript代码方法 Selenium在对浏览器操作时会有自动化代码中不稳定的部分,经常出错的部分,可以将这部分对网页元素进行操作的代码换成对应的Java ...
- 通过Callable接口创建线程
通过Callable接口创建线程 一.前言 Java中创建线程的方式有四中,前两种在前面我已经详细介绍过了(Runnable和Thread),不清楚的朋友们可看这里: Java多线程之线程的启动以及J ...
- 在C和C++中struct与typedef struct的区别详细介绍
c中测试code struct Cmstruct { int c; } Cm; // Cm是一个变量 typedef struct MyStruct //这里的 Mystruct 可以省略 { int ...
- Linux基础命令和文件权限
Linux命令与文件权限 Linux基础命令 reboot 重启 cd 切换目录 cd .. 回到上一级目录 cd ~ 回到主目录 cd / ...
- HTML 全局属性(摘自菜鸟教程)
HTML 全局属性 New : HTML5 新属性. 属性 描述 accesskey 设置访问元素的键盘快捷键. class 规定元素的类名(classname) contenteditableNew ...
- Unity进阶:PlayMaker
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...