首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条查询语句!该如何处理

2012-01-22 
求一条查询语句!有表字段F1,F2,F3,F4,F5,F6,字段的值为单个字母A,B,C,例如IDF1F2F3F4F5F61AABCBA2BABCAC3C

求一条查询语句!
有表字段F1,F2,F3,F4,F5,F6,字段的值为单个字母A,B,C,
例如
ID F1 F2 F3 F4 F5 F6 
1 A A B C B A  
2 B A B C A C  
3 C B B A B C  
4 B B C A A B  
…  

查询要求F1,F3,F4,F6的值分别为A,B,BC,A,只要对1-3个值就查询出来(F4为B或者C都是满足要求)
查询结果(其中第一行四个都符合,没有查询出来,第四行一个都不对,没有查询出来
第二行对两个,第三行对1个,都符合要求)
ID F1 F2 F3 F4 F5 F6 
2 B A B C A C  
3 C B B A B C  
…  
如何实现上面的查询语句!


[解决办法]

SQL code
select * from tb where (case when F1='A' then 1 else 0 end)+                       (case when F3='B' then 1 else 0 end)+                       (case when F4 in ('A','B') then 1 else 0 end)+                       (case when F6='A' then 1 else 0 end) between 1 and 3
[解决办法]
SQL code
use Tempdbgo--> -->  if not object_id(N'Tempdb..#T') is null    drop table #TGoCreate table #T([ID] int,[F1] nvarchar(1),[F2] nvarchar(1),[F3] nvarchar(1),[F4] nvarchar(1),[F5] nvarchar(1),[F6] nvarchar(1))Insert #Tselect 1,N'A',N'A',N'B',N'C',N'B',N'A' union allselect 2,N'B',N'A',N'B',N'C',N'A',N'C' union allselect 3,N'C',N'B',N'B',N'A',N'B',N'C' union allselect 4,N'B',N'B',N'C',N'A',N'A',N'B'GoSelect * from #T AS aWHERE (F1='A' OR F3='B' OR F4 IN('B','C') OR f6 IN('A'))AND NOT (F1='A' AND  F3='B' and F4 IN('B','C') AND  f6 IN('A'))/*ID    F1    F2    F3    F4    F5    F62    B    A    B    C    A    C3    C    B    B    A    B    C*/ 

热点排行