日期:2014-05-17  浏览次数:20782 次

查询里A表字段中包含B表字段问题
查询里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+'%'
但得出的结果为空 那里错了呢 正确应该怎么写 求指教
   
   


------解决方案--------------------
SQL code

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) > 0

xh    shengccj
1    河南羚锐生物药业
2    四川蜀中制药有限公司

------解决方案--------------------
/**(26)
 * program:CSDN问答练习
 * username:zsq
 * cteatetime:2012-8-24
 * 心得:?
 * 配置:sql server 2008
 */
-- 查询里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+'%'
--但得出的结果为空 那里错了呢 正确应该怎么写 求指教
 
 DECLARE @a TABLE (xh INT IDENTITY(1,1),shengccj NVARCHAR(255))
 DECLARE @b TABLE (xh INT ,shengccj NVARCHAR(255))
 INSERT INTO @a ( shengccj )
SELECT '河南羚锐生物药业' UNION ALL
SELECT '四川蜀中制药有限公司' UNION ALL
SELECT '海口奇力制药'
 INSERT INTO @b ( xh , shengccj )
SELECT 1,'河南羚锐生物' UNION ALL
SELECT 1,'河南中杰药业' UNION ALL
SELECT 2,'四川蜀中制药' UNION ALL
SELECT 2,'海口奇力制药' UNION ALL
SELECT 3,'河南中杰药业' 

select a.xh,a.shengccj from @a a,@b b where a.xh=b.xh and a.shengccj like '%'+b.shengccj+'%'
 ----------------------------------------------end 

按你的要求做的,还是你的代码,只是把select后边的b.shengccj改成a.shengccj 结果:
-------------------------------
1 河南羚锐生物药业
2 四川蜀中制药有限公司