case的用法(可以把数据库里的列以行的方式显示出来!)

来源:互联网 发布:淘宝精选 入口 编辑:程序博客网 时间:2024/05/25 19:58

今天在做报表的时候遇到了一个数据排版的问题不知道怎么搞,请教了我们的头,给我说case可以解决,又到网上查了下其用法终于搞定了!

所以当做笔记记下!呵呵!

 

 

将数据库中的列值以行值形式输出的办法:解决方案是:利用sql的语法(case语句搞定!)

 

case有两种语法结构:

1.将某个表达式与一组简单的值进行比较以确定返回结果。

 

CASE input_expression

WHEN when_expression THEN result_expression 

 [ ...n ] 

 [ELSE else_result_expression] 

END

 

2.计算某个布尔表达式的值以确定返回结果。

 

CASE

     WHEN Boolean_expression THEN result_expression 

     [ ...n ] 

     [ELSE else_result_expression] 

END

 

eg:

 

select 

bill_date,

sum(case page_count when 1 then 1 end) as page1,     //第一种用法

sum(case page_count when 2 then 1 end) as page2,

sum(case page_count when 3 then 1 end) as page3,

sum(case page_count when 4 then 1 end) as page4,

sum(case when page_count>4 then 1 end) as page5,     //第二种用法

count(*) total_page

from  SS_BILL_MAIN_131_200912

group by bill_date

 

原始列为:bill_date        page_count

               20091224       1

               20091224       2

               20091224       3

               ...

               20091226       5

               20091226       8

 

查询后所得列:

               bill_date      page1    page2    page3    page4    page5   t otal_page

               20091224      2          NULL    NULL      NULL     NULL       2

               20091225      4          NULL    NULL      NULL     NULL       4

               20091226      228      NULL    NULL      NULL     2             230

               20091228      2          NULL    NULL      NULL     NULL       2

 

 

原创粉丝点击