可以用like比较两列的吗?怎么操作?
选取a表中city列中包含b表中city列的数据

解决方案 »

  1.   

    Select A.* From a Inner Join b On A.city Like '%' + B.city + '%'
      

  2.   

    或者Select A.* From a, b Where A.city Like '%' + B.city + '%'
      

  3.   

    或者用CharIndexSelect A.* From a Inner Join b On CharIndex(B.city, A.city) > 0Select A.* From a, b Where CharIndex(B.city, A.city) > 0
      

  4.   

    更新的杂写?
    update company set company.行业=industry.行业 from industry Inner Join company On CharIndex(industry.公司名称,company.公司名称) > 0
    这样不行
      

  5.   

    ---LZ更新也可以的
    Try:
    ---创建测试数据
    Declare @company Table(id int,行业 varchar(30),公司名称 varchar(50))
       Insert @company Select 1,'计算机','深圳华为技术有限公司'
             Union All Select 2,'IT','深圳富士康集团' 
             Union All Select 3,'制造业','深圳比亚迪股份有限公司'
    Declare @industry Table(id int,行业 varchar(30),公司名称 varchar(50))
       Insert @industry Select 1,'计算机设备研发','华为技术'
              Union All Select 2,'IT电子','富士康' 
              Union All Select 3,'汽车电池制造业','比亚迪'
    ---查询测试数据
    Select * From @company
    Select * From @industry
    ---更新表@company
    Update A Set A.行业=B.行业 From @company A Inner Join @industry B On CharIndex(B.公司名称,A.公司名称)>0
    ---查询更新后的数据
    Select * From @company
    ---结果
    ---更新前表@company
    /*
    id          行业                公司名称                 
    ----------- ---------- --------------------------
    1           计算机        深圳华为技术有限公司
    2           IT           深圳富士康集团
    3           制造业       深圳比亚迪股份有限公司(所影响的行数为 3 行)
    */
    ---更新后表@company
    /*
    id          行业                           公司名称                  
    ----------- ------------------ --------------------------------
    1           计算机设备研发             深圳华为技术有限公司
    2           IT电子                    深圳富士康集团
    3           汽车电池制造业             深圳比亚迪股份有限公司(所影响的行数为 3 行)
    */