超难度模糊查询过程,有一个存储过程.多表查询....分不够,可以再加.

xnxqs 2005-03-24 12:30:23
现在三个表如下:
表名:TB1
列名:ID1(数字) NAME1(VARCHAR) NAME11(VARCHAR) NAME111(VARCHAR) ....
表名:TB2
列名:ID2(数字) NAME2(VARCHAR) NAME22(VARCHAR) NAME222(VARCHAR) .....
表名:TB3
列名:ID3(数字) NAME3(ntext) NAME33(VARCHAR) NAME333(VARCHAR) .........
现提供一个字符变量: @filename根据这个字符变量,找出这三个表中相应的NAME1,NAME2,NAME3这几列并返回.返回内容包括NAME1,NAME2,NAME3的值,,,还得包括TB1,TB2,TB3中各自找到多少行,请高手指教并写出存储过程和调用过程.(ASP的)
谢谢.
...全文
287 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2005-03-29
  • 打赏
  • 举报
回复
create table t1(id int,name1 nvarchar(10),name2 nvarchar(10),name3 nvarchar(10))
create table t2(id int,name1 nvarchar(10),name2 nvarchar(10),name3 nvarchar(10))
create table t3(id int,name1 nvarchar(10),name2 nvarchar(10),name3 nvarchar(10))
insert t1 select 1,'ralph' ,'ralpy' ,'ralph'
union all select 2,'king' ,'ralph' ,'ralpy'
union all select 3,'andy' ,'ralph' ,'ralph'
union all select 4,'teyrry','ralph' ,'ralph'

insert t2 select 1,'sfdsf' ,'dfdsaf' ,'rtyty'
union all select 2,'king' ,'ralph' ,'ralph'
union all select 3,'rty' ,'4534' ,'xcvbbcb'
union all select 4,'teyrry','ralph' ,'ralph'

insert t3 select 1,'ralph' ,'ralph' ,'ralph'
union all select 2,'king' ,'ralph' ,'ralph'
go

create function f_test(@s nvarchar(10))
returns @t table (tbname sysname,fdname sysname,value nvarchar(10),ctimes int)
as
begin
declare @ss nvarchar(20)
set @ss='%'+@s+'%'

insert @t(tbname,fdname,value,ctimes)
select tbname='t1',fdname='name1',value=name1,cnt=count(*)
from t1 where name1 like @ss group by name1
union all
select tbname='t1',fdname='name2',value=name2,cnt=count(*)
from t1 where name2 like @ss group by name2
union all
select tbname='t1',fdname='name3',value=name3,cnt=count(*)
from t1 where name3 like @ss group by name3

union all
select tbname='t2',fdname='name1',value=name1,cnt=count(*)
from t2 where name1 like @ss group by name1
union all
select tbname='t2',fdname='name2',value=name2,cnt=count(*)
from t2 where name2 like @ss group by name2
union all
select tbname='t2',fdname='name3',value=name3,cnt=count(*)
from t2 where name3 like @ss group by name3

union all
select tbname='t3',fdname='name1',value=name1,cnt=count(*)
from t3 where name1 like @ss group by name1
union all
select tbname='t3',fdname='name2',value=name2,cnt=count(*)
from t3 where name2 like @ss group by name2
union all
select tbname='t3',fdname='name3',value=name3,cnt=count(*)
from t3 where name3 like @ss group by name3

update a set ctimes=b.cnt
from @t a,(select tbname,fdname,cnt=sum(ctimes) from @t group by tbname,fdname)b
where a.tbname=b.tbname and a.fdname=b.fdname
return
end
go

select *
from dbo.f_test('y')
go
drop function f_test
drop table t1,t2,t3

/*--结果
tbname fdname value ctimes
---------------------- ------------------------ ---------- -----------
t1 name1 andy 2
t1 name1 teyrry 2
t1 name2 ralpy 1
t1 name3 ralpy 1
t2 name1 rty 2
t2 name1 teyrry 2
t2 name3 rtyty 1

(所影响的行数为 7 行)

--*/
xnxqs 2005-03-29
  • 打赏
  • 举报
回复
晕晕,,经过测试发现,,你这个是FUNCTION不是存储过程..

我想变成存储过程参照你的方法没有成功,,能补写下存储过程吗??
并写下调用代码,,
不胜感激!!!谢谢!!
谢谢
xnxqs 2005-03-29
  • 打赏
  • 举报
回复
还有,,请注意看我的最开始的提问有个字段是NTEXT型的..

在这里这个字段需要一些特殊的处理吗???还是直接按你的过程写就行??
xnxqs 2005-03-29
  • 打赏
  • 举报
回复
好的谢谢哈如果能补上调用过程那就更爽了.!!
嘿嘿...
xnxqs 2005-03-28
  • 打赏
  • 举报
回复
晕晕,这几天出差了.网都没上.

团结的回答我看了,只能说沾点边...我的意思是说,根据一个词一次查三个表,返回结果必须包括这三个表的符合条件的值和结果行数.
然后再调用三个表内各自的值和行数(就是说符合条件的有多少个,是三个表各自有多少个,而不是共计多少个.比如说:TB1找到3个,TB2找到3个,TB3找到4个而不是说一共找到10个.)

而团结写的只是针对一个表来的.我要的是一次查三个表并能分别调用,,麻烦高手写上存储过程和调用过程.
谢谢哈.
这个应该如麻将三QUE一所写的那样,可能要建个临时表.不过他的写的偶看不懂.(偶也测试了好像没通过..)
路过的帮忙顶下,,这事有点吃紧.

TO:邹建..
不怕你不答就怕你说看不懂...5555555.......
当你说看不懂时,偶就开始怀疑偶的表达能力了..
偶这段的补充说明不知道你再看明白我的意思没有.
帮忙解下.
qxq321 2005-03-24
  • 打赏
  • 举报
回复
楼主说的不错,真是复杂.....
haslong 2005-03-24
  • 打赏
  • 举报
回复
好复杂,看不懂。挨
zjcxc 2005-03-24
  • 打赏
  • 举报
回复
我是说看不懂楼主的问题
talantlee 2005-03-24
  • 打赏
  • 举报
回复
exec('select NAME1,(select count(*) from (select name1, from tb1 where NAME1 like %@filen%)T ) as 找到的行數 from TB1 group by NAME1')
上面的也錯了,再看看這個,也是找TB1裡的
talantlee 2005-03-24
  • 打赏
  • 举报
回复
不好意思,上面的錯了
exec('select ,name1, count(*)as 找到的行數 from (select name1, from tb1 where NAME1 like %@filen%)T from TB1')
這條你看看,這隻是對一個表的查詢,你看看行不?
talantlee 2005-03-24
  • 打赏
  • 举报
回复
create proc find
@filename nvarchar(1000)
as

declare @sql nvarchar(1000)
set @sql=N'select name1,sum(1)as tb_1 from tb1 where name1like %@filen'
exec sp_executesql @sql,N'@filen nvarchar(1000)',@filen=@filename
寫個存儲過程啊,你在我上面加上其他你要的列名看看,
xnxqs 2005-03-24
  • 打赏
  • 举报
回复
调用的过程能写下吗????
谢谢!
xnxqs 2005-03-24
  • 打赏
  • 举报
回复
汗~~~二大高手都来了.
偶也是看不懂继续期待中........
不过正在试验.
zjcxc 2005-03-24
  • 打赏
  • 举报
回复
没看明白是什么意思
xluzhong 2005-03-24
  • 打赏
  • 举报
回复
create table t1(id int,name1 nvarchar(10))
create table t2(id int,name2 nvarchar(10))
create table t3(id int,name3 nvarchar(10))
insert into t1 select 1,'ralph' union all select 2,'king'
union all select 3,'andy' union all select 4,'terry'
insert into t2 select 1,'ralph' union all select 2,'king'
union all select 3,'andy'
insert into t3 select 1,'ralph' union all select 2,'king'
union all select 4,'terry'

go

create function f_test(@s nvarchar(10))
returns @t table (name4 nvarchar(10),[from] nvarchar(50),ctimes int)
as
begin

declare @tt table (name4 nvarchar(10),[from] nvarchar(50),ctimes int)
insert into @tt
select name1,'t1',0 from t1 where len(name1)-len(replace(name1,@s,''))>0
union all
select name2,'t2',0 from t2 where len(name2)-len(replace(name2,@s,''))>0
union all
select name3,'t3',0 from t3 where len(name3)-len(replace(name3,@s,''))>0
update @tt
set ctimes=b.c
from @tt a left join(
select [from],count(*) as c
from @tt
group by [from])b
on a.[from]=b.[from]
insert into @t select * from @tt
return
end
go

select *
from dbo.f_test('y')

drop function f_test
drop table t1,t2,t3
【语音离】基于平均谐波结构建模的无监督单声道音乐声源离(Matlab代码实现)内容概要:本文介绍了基于平均谐波结构建模的无监督单声道音乐声源离方法,并提供了相应的Matlab代码实现。该方法通过对音乐信号中的谐波结构进行建模,利用音源间的频率特征差异,实现对混合音频中不同乐器或人声成的有效离。整个过程无需标注数据,属于无监督学习范畴,适用于单通道录音场景下的语音与音乐离任务。文中强调了算法的可复现性,并附带完整的仿真资源链接,便于读者学习与验证。; 适合人群:具备一定信号处理基础和Matlab编程能力的高校学生、科研人员及从事音频处理、语音识别等相关领域的工程师;尤其适合希望深入理解声源离原理并进行算法仿真实践的研究者。; 使用场景及目标:①用于音乐音频中人声与伴奏的离,或不同乐器之间的离;②支持无监督条件下的语音处理研究,推动盲源离技术的发展;③作为学术论文复现、课程项目开发或科研原型验证的技术参考。; 阅读建议:建议读者结合提供的Matlab代码与网盘资料同步运行调试,重点关注谐波建模与频谱解的实现细节,同时可扩展学习盲源离中的其他方法如独立成析(ICA)或非负矩阵解(NMF),以加深对音频信号离机制的理解。
内容概要:本文系统介绍了新能源汽车领域智能底盘技术的发展背景、演进历程、核心技术架构及创新形态。文章指出智能底盘作为智能汽车的核心执行层,通过线控化(X-By-Wire)和域控化实现驱动、制动、转向、悬架的精准主动控制,支撑高阶智能驾驶落地。技术发展历经机械、机电混合到智能三个阶段,当前以线控转向、线控制动、域控制器等为核心,并辅以传感器、车规级芯片、功能安全等配套技术。文中还重点探讨了“智能滑板底盘”这一创新形态,强调其高度集成化、模块化优势及其在成本、灵活性、空间利用等方面的潜力。最后通过“2025智能底盘先锋计划”的实车测试案例,展示了智能底盘在真实场景中的安全与性能表现,推动技术从研发走向市场验证。; 适合人群:汽车电子工程师、智能汽车研发人员、新能源汽车领域技术人员及对智能底盘技术感兴趣的从业者;具备一定汽车工程或控制系统基础知识的专业人士。; 使用场景及目标:①深入了解智能底盘的技术演进路径与系统架构;②掌握线控技术、域控制器、滑板底盘等关键技术原理与应用场景;③为智能汽车底盘研发、系统集成与技术创新提供理论支持与实践参考。; 阅读建议:建议结合实际车型和技术标准进行延伸学习,关注政策导向与行业测试动态,注重理论与实车验证相结合,全面理解智能底盘从技术构想到商业化落地的全过程
【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)内容概要:本文介绍了名为《【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)》的技术资源,重点围绕电力系统中连锁故障的传播路径展开研究,提出了一种N-k多阶段双层优化模型,并结合故障场景筛选方法,用于提升电力系统在复杂故障条件下的安全性与鲁棒性。该模型通过Matlab代码实现,具备较强的工程应用价值和学术参考意义,适用于电力系统风险评估、脆弱性析及预防控制策略设计等场景。文中还列举了大量相关的科研技术支持方向,涵盖智能优化算法、机器学习、路径规划、信号处理、电力系统管理等多个领域,展示了广泛的仿真与复现能力。; 适合人群:具备电力系统、自动化、电气工程等相关背景,熟悉Matlab编程,有一定科研基础的研究生、高校教师及工程技术人员。; 使用场景及目标:①用于电力系统连锁故障建模与风险评估研究;②支撑高水平论文(如EI/SCI)的模型复现与算法验证;③为电网安全析、故障传播防控提供优化决策工具;④结合YALMIP等工具进行数学规划求解,提升科研效率。; 阅读建议:建议读者结合提供的网盘资源,下载完整代码与案例进行实践操作,重点关注双层优化结构与场景筛选逻辑的设计思路,同时可参考文档中提及的其他复现案例拓展研究视野。

27,580

社区成员

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

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