这样?----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-12-02 13:35:51
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
-- Dec 28 2012 20:23:12 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[A]
if object_id('[A]') is not null drop table [A]
go 
create table [A]([商品编码] int,[商品名] varchar(4),[商品价格] numeric(4,2))
insert [A]
select 1,'文具',23.00 union all
select 2,'书本',33.00 union all
select 3,'毛巾',32.00
--> 测试数据:[B]
if object_id('[B]') is not null drop table [B]
go 
create table [B]([商品大类] varchar(6),[商品小类] varchar(6))
insert [B]
select '办公类','文具' union all
select '办公类','书本' union all
select '办公类','笔' union all
select '服务类','毛巾' union ALL
select '服务类','洗手液'
--------------开始查询--------------------------select a.*,b.[商品大类]
from [A] LEFT JOIN B ON a.[商品名]=b.[商品小类]
----------------结果----------------------------
/* 
商品编码        商品名  商品价格                                    商品大类
----------- ---- --------------------------------------- ------
1           文具   23.00                                   办公类
2           书本   33.00                                   办公类
3           毛巾   32.00                                   服务类
*/

解决方案 »

  1.   

    create table #a( 商品编码 int,商品名 varchar(50),商品价格 numeric(18,2))
    insert into #a
    select 1,'文具', 23.00 union all
    select 2,'书本', 33.00 union all
    select 3,'毛巾', 32.00create table #b(商品大类 varchar(50),商品小类 varchar(50))insert into #b
    select '办公类', '文具' union all
    select '办公类', '书本' union all
    select '办公类', '笔' union all
    select '服务类', '毛巾' union all
    select '服务类', '洗手液'select * from #b
    where 商品小类 in(select 商品名 from #a)
    商品大类                                               商品小类
    -------------------------------------------------- --------------------------------------------------
    办公类                                                文具
    办公类                                                书本
    服务类                                                毛巾(3 行受影响)
      

  2.   

    select b.商品大类,b.商品小类,a.商品价格 from
    A ,B
    where A.商品名=b.商品小类 and b.商品大类='办公类'
      

  3.   

     select * from 表A a inner join 表B b on a.商品名=b.商品小类 
      

  4.   

    --> 测试数据:[A]
    if object_id('[A]') is not null drop table [A]
    go 
    create table [A]([商品编码] int,[商品名] varchar(4),[商品价格] numeric(4,2))
    insert [A]
    select 1,'文具',23.00 union all
    select 2,'书本',33.00 union all
    select 3,'毛巾',32.00
    --> 测试数据:[B]
    if object_id('[B]') is not null drop table [B]
    go 
    create table [B]([商品大类] varchar(6),[商品小类] varchar(6))
    insert [B]
    select '办公类','文具' union all
    select '办公类','书本' union all
    select '办公类','笔' union all
    select '服务类','毛巾' union ALL
    select '服务类','洗手液'
    --------------开始查询--------------------------
     
     
     
    select a.*,b.[商品大类]
    from [A] LEFT JOIN B ON a.[商品名]=b.[商品小类]
    WHERE b.[商品大类]='办公类'
    /*
    商品编码        商品名  商品价格                                    商品大类
    ----------- ---- --------------------------------------- ------
    1           文具   23.00                                   办公类
    2           书本   33.00                                   办公类*/