查询里A表字段中包含B表字段问题
比如 AA表如
xh shengccj
1 河南羚锐生物药业
2 四川蜀中制药有限公司
3 海口奇力制药BB表
xh shengccj
1 河南羚锐生物
1 河南中杰药业
2 四川蜀中制药
2 海口奇力制药
3 河南中杰药业
我想查询 的条件为 A表xh=b表xh a表中shengccj 必须在b表中shengccj的
结果为
xh shengccj
1 河南羚锐生物药业
2 四川蜀中制药有限公司
我是这么写的 select a.xh,b.shengccj from AA a,BB b where a.xh=b.xh and a.shengccj like '%'+b.shengccj+'%'
但得出的结果为空 那里错了呢 正确应该怎么写 求指教
比如 AA表如
xh shengccj
1 河南羚锐生物药业
2 四川蜀中制药有限公司
3 海口奇力制药BB表
xh shengccj
1 河南羚锐生物
1 河南中杰药业
2 四川蜀中制药
2 海口奇力制药
3 河南中杰药业
我想查询 的条件为 A表xh=b表xh a表中shengccj 必须在b表中shengccj的
结果为
xh shengccj
1 河南羚锐生物药业
2 四川蜀中制药有限公司
我是这么写的 select a.xh,b.shengccj from AA a,BB b where a.xh=b.xh and a.shengccj like '%'+b.shengccj+'%'
但得出的结果为空 那里错了呢 正确应该怎么写 求指教
GO
CREATE TABLE AA
(
xh INT,
shengccj VARCHAR(100)
)
INSERT INTO AA
SELECT 1, '河南羚锐生物药业'
UNION ALL
SELECT 2, '四川蜀中制药有限公司'
UNION ALL
SELECT 3, '海口奇力制药'CREATE TABLE BB
(
xh INT,
shengccj VARCHAR(100)
)
INSERT INTO BB
SELECT 1, '河南羚锐生物'
UNION ALL
SELECT 1, '河南中杰药业'
UNION ALL
SELECT 2, '四川蜀中制药'
UNION ALL
SELECT 2, '海口奇力制药'
UNION ALL
SELECT 3, '河南中杰药业'select a.xh,A.shengccj from AA a,BB b where a.xh=b.xh and a.shengccj like '%'+b.shengccj+'%'用你原有的代码也不为空啊。我在你select中的shengccj换成a表的,这样才会是你想要的。
结果:
xh shengccj
----------- ---------
1 河南羚锐生物药业
2 四川蜀中制药有限公司(2 行受影响)
(
xh INT,
shengccj VARCHAR(100)
)
INSERT INTO AA
SELECT 1, '河南羚锐生物药业'
UNION ALL
SELECT 2, '四川蜀中制药有限公司'
UNION ALL
SELECT 3, '海口奇力制药'CREATE TABLE BB
(
xh INT,
shengccj VARCHAR(100)
)
INSERT INTO BB
SELECT 1, '河南羚锐生物'
UNION ALL
SELECT 1, '河南中杰药业'
UNION ALL
SELECT 2, '四川蜀中制药'
UNION ALL
SELECT 2, '海口奇力制药'
UNION ALL
SELECT 3, '河南中杰药业'
GO
--开始查询
--1
select a.xh,a.shengccj from AA a left join BB b on a.xh=b.xh where b.shengccj like substring(a.shengccj,1,6)
--2
select a.xh,a.shengccj from AA a ,BB b where a.xh=b.xh and b.shengccj like left(a.shengccj,6)
--3
select a.xh,a.shengccj from AA a,BB b where a.xh=b.xh and a.shengccj like '%'+b.shengccj+'%' --这个也可以出结果啊
/*
-----------------------------------------------------------------------
xh shengccj
1 河南羚锐生物药业
2 四川蜀中制药有限公司(2 行受影响)
------------------------------------------------------------------------
*/
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'AA')
BEGIN
DROP TABLE AA
END
GO
CREATE TABLE AA
(
xh INT,
shengccj VARCHAR(100)
)
GO
INSERT INTO AA
SELECT 1, '河南羚锐生物药业' UNION
SELECT 2, '四川蜀中制药有限公司' UNION
SELECT 3, '海口奇力制药'
GO
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'BB')
BEGIN
DROP TABLE BB
END
GO
CREATE TABLE BB
(
xh INT,
shengccj VARCHAR(100)
)
GO
INSERT INTO BB
SELECT 1, '河南羚锐生物' UNION
SELECT 1, '河南中杰药业' UNION
SELECT 2, '四川蜀中制药' UNION
SELECT 2, '海口奇力制药' UNION
SELECT 3, '河南中杰药业'
GO
SELECT AA.*
FROM AA INNER JOIN BB ON AA.xh = BB.xh AND CHARINDEX(BB.shengccj,AA.shengccj) > 0xh shengccj
1 河南羚锐生物药业
2 四川蜀中制药有限公司