当前位置: 代码迷 >> Sql Server >> 请问一条查询的sql语句
  详细解决方案

请问一条查询的sql语句

热度:78   发布时间:2016-04-24 18:19:46.0
请教一条查询的sql语句
一个表有三列数据
 Type            A                        B
     1      70210001    70210003
      0     70120002    72230002 
      0     71340001    72220003
      1     73320003    72230002
       0     73330002    70210001
       1      70210001     73220001
       0     73330003      70210001
 现在要求查找包含“0001”的数据,且当type=1时,查询A列,当type=0时,查询B列,且除去相同结果(如果A列中的数和B列中的相同,也要去重)
 我写的where ( A like '% 0001%' and  Type = 1 ) or (  B like '% 0001%' and  Type = 0 ) group by A , B
这样的结果  还是有两条数据,不能把A列和B列中相同的去重.........
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

一个表有三列数据
 Type            A                        B
     1      70210001    70210003
      0     70120002    72230002 
      0     71340001    72220003
      1     73320003    72230002
       0     73330002    70210001
       1      70210001     73220001
       0     73330003      70210001
 现在要求查找包含“0001”的数据,且当type=1时,查询A列,当type=0时,查询B列,且除去相同结果(如果A列中的数和B列中的相同,也要去重)
 我写的where ( A like '% 0001%' and  Type = 1 ) or (  B like '% 0001%' and  Type = 0 ) group by A , B
这样的结果  还是有两条数据,不能把A列和B列中相同的去重.........

这样查出来的结果是  
1           70210001    70210003
0           73330002    70210001   
有两条结果  但是我只想要一条70210001的结果

请大家原谅我表达能力太差了
 Type            A                        B
     1      70210001              0
      0     0                       70210001 
      0     0                       70220001
      1    70230001               0
      1    70230001               0
      0     0                       70220001
假设这6条数据吧   我想要的结果是:
1      70210001              0
 0     0                       70220001
 1    70230001               0


这样吗:
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([Type] int,[A] int,[B] int)
insert [tb]
select 1,70210001,0 union all
select 0,0,70210001 union all
select 0,0,70220001 union all
select 1,70230001,0 union all
select 1,70230001,0 union all
select 0,0,70210001

  相关解决方案