日期:2014-05-17 浏览次数:20942 次
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	四川蜀中制药有限公司