问个简单的select语句问题

ShiningG 2008-03-22 04:11:21
A表内A.1字段值为'1','2','3','4'
B表内,B.1字段值为'2','3'

请问我想查A表和B表这两个字段出现重合的值,也就是要查出'2','3'来,这条语句应该怎么写啊?
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Limpire 2008-03-22
  • 打赏
  • 举报
回复
如果是这样,就复杂多了,以前也回过一个类似的。

楼主似乎还要提供更多的规则,比如方向性,B改为3,2算不算重合

2楼写的只是简单地将B作为一个整体,查找是否是出现重合,B调个方向或改为2,3,5,就要歇菜。
dawugui 2008-03-22
  • 打赏
  • 举报
回复
那天有个分解的,忘记哪里去了.给个分解函数给你.

/*
功能:实现split功能的函数
*/

create function dbo.fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as

begin
declare @i int

set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)

while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))

set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
end

if @inputstr <> '\'
insert @temp values(@inputstr)

return
end
go

--调用

declare @s varchar(1000)

set @s='1,2,3,4,5,6,7,8,55'

select * from dbo.fn_split(@s,',')

drop function dbo.fn_split





dawugui 2008-03-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 ShiningG 的帖子:]
A表内A.1字段值为'1','2','3','4'
B表内,B.1字段值为'2','3'

请问我想查A表和B表这两个字段出现重合的值,也就是要查出'2','3'来,这条语句应该怎么写啊?
[/Quote]

我估计要把这两字符串逐一分解然后比较.
pt1314917 2008-03-22
  • 打赏
  • 举报
回复


declare @a table(val varchar(50))
insert into @a select '''1'',''2'',''3'',''4'''

declare @B table(val varchar(50))
insert into @b select '''2'',''3'''


select b.* from @b b left join @a a on charindex(','+b.val+',',','+a.val+',')>0
Limpire 2008-03-22
  • 打赏
  • 举报
回复
select a.字段 from A表 a join B表 b on a.字段=b.字段

34,590

社区成员

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

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