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