求一个查询语句

zyjj1688 2018-03-01 08:18:40
table1
aa
bb
cc
aaa
bbb

table2
aa、bb
aa
aa、cc
bb、cc
ee
ff

目标把查找table2是否在table里存在,如果有“、”就拆分后查找。
...全文
225 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2018-03-01
  • 打赏
  • 举报
回复
上面那个不够严谨, 版主帮忙删除一下。 按这个:
USE tempdb
GO
IF OBJECT_ID('table1') IS NOT NULL DROP TABLE table1
IF OBJECT_ID('table2') IS NOT NULL DROP TABLE table2
GO
CREATE TABLE table1 (n VARCHAR(50))
CREATE TABLE table2 (n VARCHAR(50))
GO
INSERT INTO table1
SELECT 'aa'
UNION ALL SELECT  'bb'
UNION ALL SELECT  'cc'
UNION ALL SELECT  'aaa'
UNION ALL SELECT  'bbb'

INSERT INTO table2
SELECT 'aa、bb'
UNION ALL SELECT  'aa'
UNION ALL SELECT  'aa、cc'
UNION ALL SELECT  'bb、cc'
UNION ALL SELECT  'ee'
UNION ALL SELECT  'ff'

SELECT * FROM table2 AS t2 WHERE EXISTS(
	SELECT 1 FROM table1 AS t1 WHERE '、'+t2.n+'、' LIKE '%、'+t1.n+'、%' 	
)
/*
aa、bb
aa
aa、cc
bb、cc
*/
吉普赛的歌 版主 2018-03-01
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('table1') IS NOT NULL DROP TABLE table1
IF OBJECT_ID('table2') IS NOT NULL DROP TABLE table2
GO
CREATE TABLE table1 (n VARCHAR(50))
CREATE TABLE table2 (n VARCHAR(50))
GO
INSERT INTO table1
SELECT 'aa'
UNION ALL SELECT  'bb'
UNION ALL SELECT  'cc'
UNION ALL SELECT  'aaa'
UNION ALL SELECT  'bbb'

INSERT INTO table2
SELECT 'aa、bb'
UNION ALL SELECT  'aa'
UNION ALL SELECT  'aa、cc'
UNION ALL SELECT  'bb、cc'
UNION ALL SELECT  'ee'
UNION ALL SELECT  'ff'

SELECT * FROM table2 AS t2 WHERE EXISTS(
	SELECT 1 FROM table1 AS t1 WHERE t2.n LIKE '%'+t1.n+'%' 	
)
/*
aa、bb
aa
aa、cc
bb、cc
*/
  • 打赏
  • 举报
回复
你网上找下 字符串拆分函数 很多的,你看下 也可以学一下

34,588

社区成员

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

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