在SQL sever中当查询到某一列中满足条件的某一行,如何提取这一行进行操作完成后添加到结果集中?
当查询满足条件时,我想用ifelse提取这行用字符串函数进行处理后添加到结果集中--两位帮我参考一下怎么改usetest1goselect*from实验1where句子l...
当查询满足条件时,我想用if else 提取这行用字符串函数进行处理后添加到结果集中
--两位帮我参考一下怎么改
use test1
go
select * from 实验1 where 句子 like '%科学%大脑%'
--查找科学和大脑两个词
declare @weizhi1 smallint, @weizhi2 smallint --声明科学和大脑两个词的位置
select @weizhi1 =PATINDEX ('%科学%',句子)from 实验1 where 句子 like '%科学%大脑%'--获取科学在查找到科学和大脑行的位置
select @weizhi2 =PATINDEX ('%大脑%',句子)from 实验1 where 句子 like '%科学%大脑%'
--获取大脑在查找到科学和大脑行的位置
if @weizhi2-@weizhi1 <50
--判断科学和大脑之间的字符个数是否小于50,如果小于50那么将改行添加到记录集
select * from where 句子 like '%科学%大脑%'
/*我的意思是在名为句子列中如果查找到带有科学和大脑,并且获取它们的字符位置,如果字符距离小于50的话
就将其添加到结果集中,*/ 展开
--两位帮我参考一下怎么改
use test1
go
select * from 实验1 where 句子 like '%科学%大脑%'
--查找科学和大脑两个词
declare @weizhi1 smallint, @weizhi2 smallint --声明科学和大脑两个词的位置
select @weizhi1 =PATINDEX ('%科学%',句子)from 实验1 where 句子 like '%科学%大脑%'--获取科学在查找到科学和大脑行的位置
select @weizhi2 =PATINDEX ('%大脑%',句子)from 实验1 where 句子 like '%科学%大脑%'
--获取大脑在查找到科学和大脑行的位置
if @weizhi2-@weizhi1 <50
--判断科学和大脑之间的字符个数是否小于50,如果小于50那么将改行添加到记录集
select * from where 句子 like '%科学%大脑%'
/*我的意思是在名为句子列中如果查找到带有科学和大脑,并且获取它们的字符位置,如果字符距离小于50的话
就将其添加到结果集中,*/ 展开
2个回答
展开全部
用存储过程
@r = select ... where...
然后使用@r操作
===========================
@result = select * from 实验1 where 句子 like '%科学%大脑%'
create table #tabC(v vchar(100))
while {使用游标循环
@weizhi1 = charIndex(科学);
@weizhi2 = charIndex(大脑);
if @weizhi2-@weizhi1 <50
insert #tabC
tabC就是最终的结果集
@r = select ... where...
然后使用@r操作
===========================
@result = select * from 实验1 where 句子 like '%科学%大脑%'
create table #tabC(v vchar(100))
while {使用游标循环
@weizhi1 = charIndex(科学);
@weizhi2 = charIndex(大脑);
if @weizhi2-@weizhi1 <50
insert #tabC
tabC就是最终的结果集
追问
问题已补充,能帮我看下吗?
追答
回答已补充,请继续
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询