“悬赏50分”当查找的关键字是指定字段中的一部分,sql查询语句该怎么写??

来源:百度知道 编辑:UC知道 时间:2024/06/08 19:47:26
比如说字段“组合”,有如下记录:
组合字母 组合数字
第一行:“abc|bcd|cde|def……”“123|234|345|456……”
第二行:“hij|ijk|jkl|klm……”“8910|91011|101112|111213……”
…………………………
…………………………
…………………………
如上所示,“|”是分隔符。
现在我查询“cde”,要求除了返回“组合字母”中的cde,还要求返回对应位置的“345”(因为“cde”是“字母组合”中的第3个,所以返回“数字组合”中的第3个,即“345”)。
这个sql查询语句该怎么写呢??在sql2000中。
这么说吧:我输入查询关键字cde,要求能返回cde和345,这个sql查询语句怎么写???

晕,你建一个表把数据IMPUT到表里就行啦,然后select第三列的列名就行啦..

因为你的第一列和第二列是对应的关系.
如果你在第一列中找到你要找到的组合(因为是对应的关系,所以他们的|的数量也该是相等的),也就是说你只要在第一列里找到,哪么在第二列中也就能找到了.
我是这么想的,不知道能不能帮你.

能不能清处一点.

tai hao l

写了个存储过程,你看一下。应该能达到你的要求。
create Procedure pro_temp
(@str varchar(10))--你要查询的组合字母列的字符串
as
if object_id('tempdb..#temp') is not null drop table #temp

declare @tempa varchar(100)
,@tempb varchar(100)
,@strtemp varchar(12)

set @strtemp = ('%'+@str+'%')
set @tempa = (select a from table1 WHERE A LIKE @strtemp)
set @tempb = (select b from table1 WHERE A LIKE @strtemp)
SELECT a ,b into #temp FROM TABLE1 WHERE A LIKE @strtemp

while @tempa <> ''
begin
if CHARINDEX('|' ,@tempa) = 0
begin
Insert into #temp(a, b) values(@tempa ,@tempb)
break
end
Insert into #temp(a, b) values(left(@tempa,CHARINDEX('|' ,@tempa)-1)