高分求一个SQL算法问题

jeremy 2013-03-23 02:15:11
数据库有个字段里存了一个以/分隔的ID
如: 1/1003/1145/1148/1174
我现在想取出这个些ID的记录, 等于1,1003,1145,1148,1174 的记录,有没有办法?
我用 ID IN (
SELECT replace(1/1003/1145/1148/1174,'/',',')
这样不行,不知各位有什么好办法?
...全文
402 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
md5e 2013-03-25
  • 打赏
  • 举报
回复
Select * From aa Where ('/'+ '1/1003/1145/1148/1174' +'/' ) like ('%/'+cast(id as nvarchar) +'/%')
大唐剑客 2013-03-25
  • 打赏
  • 举报
回复
给你一个简单有效的办法,自己看一下怎么用吧。 select * from table where (select '/日志1221/日志1331//日志1551/') like ('%/'+ ID+ '/%')
lbb398229882 2013-03-23
  • 打赏
  • 举报
回复
不知道这样是不是楼主想要的结果,没有表数据就随便模拟了个数据 create table AAAA ( ID int primary key identity , Id_F varchar(500) ) insert into AAAA values('1/1001') insert into AAAA values('1/1002') insert into AAAA values('1/1003') insert into AAAA values('1/1002/1005') select * from AAAA select * into #kk from AAAA --将数据库插入到一个临时表是为看下面的update操作不改变原始数据,避免不比要的失误 select * from #kk update #kk set Id_F=(select replace(Id_F,'/',',') from #kk as a where a.ID=#kk.ID ) select * from #kk 这里就可以把#kk表做为数据源来取想要的数据了
jeremy 2013-03-23
  • 打赏
  • 举报
回复
replace('1/1003/1145/1148/1174','/',',') 这样的东西在IN里面用一定要通过EXEC的方式吗?还有别的方式可以不?
jeremy 2013-03-23
  • 打赏
  • 举报
回复
因为我是在一个很复杂JOIN了好多表的SQL语句里要做这件事,目的是根据FULL_DEPT_ID 的次次关系找到我需要的那一级的数据
jeremy 2013-03-23
  • 打赏
  • 举报
回复
seusoftware 在吗?现在问题是我没办法执行EXEC啊
seusoftware 2013-03-23
  • 打赏
  • 举报
回复
引用 6 楼 xywhnh 的回复:
数据库结构如图
那就把表里的字符串先连到一起啊,然后replace再exec,和上面一样,以F_FULL_DEPT_ID 为例:

declare @c varchar(max)
set @c = ''
select @c = @c +'/'+ F_FULL_DEPT_ID from table1
set @c = replace(right(@c,len(@c)-1),'/',',')
exec('select * from table2 where ID in('+@c+')')
jeremy 2013-03-23
  • 打赏
  • 举报
回复
2楼同学的方法果然可以,但是我的1/1003/1145/1148/1174 是在一个列里面的,现在要同时取多行,在select 里又不能执行EXEC,尴尬了
jeremy 2013-03-23
  • 打赏
  • 举报
回复
TO:seusoftware 按你的方式定义了变量,并设置了值,但还是不行啊,程序还是认为整个是一个变量,而没有当成一个集合
Mr_Nice 2013-03-23
  • 打赏
  • 举报
回复
DECLARE @i varchar(10)
SET @i = '123'

DECLARE @value VARCHAR(200)
SET @value = '1/123/143/124546/'

SELECT CHARINDEX(@i,@value,0)
结果如果大于0 ,就判定为含有了哦。 不过这个不是非常严谨的,如果要非常严谨,lz需要拆分出来然后inner join 看看
seusoftware 2013-03-23
  • 打赏
  • 举报
回复
replace之后,sql server事实上把1,1003,1145,1148,1174当成字符串了,可以这样做: declare @c varchar(2000) select @c = replace('1/1003/1145/1148/1174','/',',') set @c = 'select * from t2 where ID in ('+@c+')' --print @c exec(@c)
-Tracy-McGrady- 2013-03-23
  • 打赏
  • 举报
回复
你这个到底有几列列名为ID的啊
【资源说明】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载食用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【项目介绍】 基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip 基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip 基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip 基于遗传算法的自动组卷管理系统源码+sql数据库(题库管理+自动组卷+试卷导出)高分毕设项目.zip
【资源介绍】 基于Pytorch+Bert模型实现自然语言转结构化sql源码+项目说明+数据集.zip 将自然语言转为机器可以理解的SQL语言,旨在拉近用户与结构化数据间的距离,实现人机交互体验升级。实现基本思路: 1. 定义结构化`sql` 2. `label`训练数据 3. 采用`bert`预训练模型 4. 下游模型构建 5. `pytorch`编程 6. 模型训练 7. 模型预测 定义结构化`sql` 首先,明确算法输入为自然语言,算法输出为结构化`sql`。 采用`bert`预训练模型 解决自然语言转结构化`SQL`问题涉及到自然语言识别(`NLP`),同时考虑到`label`数据数据量小的问题,采用已经预训练好的模型`bert`作为本算法的上游模型,然后本算法模型在`bert`模型的基础上搭建下游模型,该下游模型主要处理的问题是[结构化`SQL`](##定义结构化`sql`)中所分析出来的**多分类问题** 下游模型构建 由[结构化`SQL`](##定义结构化`sql`)可知,下游模型需要处理的是**多分类问题**,主要需要训练的内容是**`agg`聚合操作、`conn_op`连接符、`cond_op`条件操作符、`cond_vals`条件操作值**。主要存在的问题是**查询列、条件数量是不固定的**,由于已经对列进行的确定的编码,因此**查询列、条件数量的最大值是确定的**。因此**`agg`、`cond_op`、`cond_vals`会对所有列进行分类训练**。 从上述思路中,还存在可优化的点是**`cond_op`与`cond_vals`之间存在必然的数量关系**。即假设某个`question`训练出来的`cond_op`的数量是2,那么`cond_vals`的数量必然也是2。为了优化该问题,将模型拆分成两部分,第一部分训练&预测`agg`和`cond_op`,第二部分训练&预测`cond_vals`,**预测时接受第一部分模型预测出来的cond_op的数量**。整体结构如下图所示: 【备注】 该项目是个人毕设/课设/大作业项目,代码都经过本地调试测试,功能ok才上传,高分作品,可快速上手运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载使用,也欢迎交流学习!

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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