当前位置:  数据库>sqlserver

SQL Server高级内容之case语法函数概述及使用

    来源: 互联网  发布时间:2014-10-10

    本文导语:  1.Case函数的用法 (1)使用类似:switch-case与if-else if。 (2)语法:     case [字段]       when 表达式 then 显示数据       when 表达式 then 显示数据       else 显示数据     end (3)百分制转换素质教育 1)...

1.Case函数的用法
(1)使用类似:switch-case与if-else if。
(2)语法:
    case [字段]
      when 表达式 then 显示数据
      when 表达式 then 显示数据
      else 显示数据
    end
(3)百分制转换素质教育
1)如图:我们要将显示的数据转换成ABCDE,规则是90分以上显示A,80分以上显示B,以此类推。
     

2)执行的SQL语句是:

代码如下:

      Select ID,TestBase,
      Case
        When testBase>=90 then ‘A'
      When testBase>=80 then ‘B'
        When testBase>=70 then ‘C'
        When testBase>=60 then ‘D'
         Else ‘E' end as testBaseLevel,
    testBeyond,testDate from Score

3)最后的执行结果如图所示: 

(4)注意:
    1)写case对应的就写上end。
    2)end后面跟别名(case与end之间相当于一个字段(对象))
(5)和C#的switch-语法作比较
1)C#
      Switch(变量)
      {
        Case 常量1:结果1;break;
        Case 常量2:结果2;break;
        Default :默认结果;break;
      }
2) SQL
      SQL语法我在上面写了,可以对比看一下。
(6)对应的if-else if语法
    1) C#
      If(表达式1) {结果1;}
      else if(表达式2) {结果2;}
      else {默认结果;}
    2)SQL Server
      case
        when 表达式1 then 显示1
        when 表达式2 then 显示2
        else 默认显示
      end
3)举例说明,如果我们存放性别的时候在数据库中是用f,m标识的,现在我们想要用男女标识,SQL语句如下:

代码如下:

       Select ID,Name,stuSex,
        case
          when stuSex='m' then ‘男'
          when syuSex='f' then ‘女'
          else ‘其它'
        end as stuSexType,
      stuDate from Student。

(7)练习案例:
1)在数据库中执行这段代码:
代码如下:

      use Test
      go
      create table PracticeTest
      (
        number varchar(10),
        amount int
      )
      insert into PracticeTest(number,amount) values('RK1',10)
      insert into PracticeTest(number,amount) values('RK2',20)
      insert into PracticeTest(number,amount) values('RK3',-30)
      insert into PracticeTest(number,amount) values('RK4',-10)

2)实现的效果如下:
     

3)可以看出,首先select中应该有三个字段,并且将数据大于0的放到收入中,那么另一个为0,并且将小于0的放到支出里面,另一个为0,下面我们写实现的SQL语句:

代码如下:

       select number as 单号,
        case
          when amount>0 then amount
          else 0
        end as 收入,
        case
          when amount

    
 
 

您可能感兴趣的文章:

  • 用SQL语法玩弄你的Redis RedisSQL
  • MySQL的SQL语法解析器 DBIx-MyParse
  • sql语法中什么类型的值需要用单引号‘’修饰?
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • Oracle实现分页查询的SQL语法汇总
  • 基于sql语句的一些常用语法积累总结
  • SQL Server 创建视图的语法
  • sql server中创建链接服务器与远程账户映射的语法
  • sql 中 case when 语法使用方法
  • JDBC SQL语法
  • Oracle和SQL语法区别整理
  • sql创建视图语法示例代码
  • SQL语法 分隔符理解小结
  • MySQL prepare语句的SQL语法
  • SQL SERVER中各类触发器的完整语法及参数说明
  • ORACLE 常用的SQL语法和数据对象
  • 超详细的SQL语句语法汇总
  • SQL语句的基本语法
  • MySQL 最基本的SQL语法/语句
  • SQL 存储过程基础语法之一
  • 在SQL中有函数,比如COUNT(*),怎样通过JDBC调用获得函数值????
  • SQL中含函数,比如COUNT(*),怎样在JDBC接口中取出函数值????
  • sql server中ISNULL函数与Mysql中IFNULL函数的用法
  • sql数据库不能直接用instr函数
  • T-SQL常用的聚合函数
  • sql server中自定义一个简单的 split 函数
  • 初学者问题:标准的sql里有处理日期的函数吗?
  • access与sql server几个常用函数的区别(图文)
  • 分享:sql server 取日期的年月日部分的函数
  • sql函数实现递归查询示例
  • T-SQL常用的数学函数
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Sql学习第二天——SQL DML与CTE概述
  • SQL Server高级内容之子查询和表链接概述及使用
  • N字符在Sql Server字段类型中的重要性概述
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • java命名空间java.sql接口resultsetmetadata的类成员方法: getcolumntype定义及介绍
  • 微软网站下载的Ms SQL Server2000 JDBC Driver,必须用英文版的SQL server2000吗?




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3