检查表格行中的数据是<或者>

时间:2012-11-29 10:50:29

标签: sql sql-server

我有这样的数据,

KOD    Voucher
1        10
2         2
3        11
4         5
5        23
6         1
7        23

我只想要结果就像这样

< 10 = 3
> 10 = 4

如何在sql中执行此操作?

4 个答案:

答案 0 :(得分:3)

试试这个:

SELECT
  SUM(CASE WHEN voucher < 10 THEN 1 ELSE 0 END) AS "< 10",
  SUM(CASE WHEN voucher > 10 THEN 1 ELSE 0 END) AS "> 10"
FROM table;

SQL Fiddle Demo

但是对于那些> 10

,这只会给你3个
< 10  > 10
3       3

您必须使用谓词>=> 10获取4个值,因为10不是> 10也不是< 10

Updated SQL Fiddle Demo

答案 1 :(得分:1)

SELECT COUNT(1) AS "< 10"
FROM myTable
WHERE Voucher < 10 

SELECT COUNT(1) AS ">= 10"
FROM myTable
WHERE Voucher >= 10 

答案 2 :(得分:0)

以行格式

  select case when voucher<10 then '< 10' else '>= 10' end breakdown,
         count(1) total
    from tbl
group by case when voucher<10 then '< 10' else '>= 10' end;

结果:

 breakdown | total
 < 10      | 3
 >= 10     | 4

以列形式

  select count(case when voucher<10 then 1 end) [< 10],
         count(case when voucher>=10 then 1 end) [>= 10]
    from tbl;

结果:

 < 10  | >= 10
 3     | 4

答案 3 :(得分:0)

select '< 10 = '+cast(count(KOD) as Varchar(100)) from t where Voucher<10
union
select '> 10 = '+cast(count(KOD) as Varchar(100)) from t where Voucher>=10

SQLFiddle example