我们的c#中经常用到了switch case,那么在sql中是否也有这样的一种格式或者是功能呢?

CASE WHEN 是sql server中的重要关键字之一,也许你对他有很多的理解,但是他真的有很多的用法,今天我就来向大家介绍一种。

实现简单的搜索功能;

数据库中的表:

现在我们要实现根据专业看各个学院有多少的人。

case when 语句:

实现的效果:

由于我的这个例子数据量很小,所以好像看不出来他的优势。但是这个例子很简单的让我们都了解了他的最基本的语法结构。

当我们的数据量很大,用我们的机房的那种一句sql语句打开一个sqlhelper的方法速度就会很慢的。而用它可以大大的减少时间。

在NCRE中,更新分数和考生答题记录,师哥就是用的这种方法。这是一个D层的代码:

<span style="font-size:18px;">   public void ReturnScore(List<IEQuestionRecordEntity> list, IEQuestionRecordEntity studentrecord){String which = WhichIERecored(studentrecord);StringBuilder sbSql = new StringBuilder();sbSql.Append(" update IEQuestionRecordEntity_" + which + " SET fraction = CASE questionID ");string Fation = string.Empty;string questionID = string.Empty;string studentIDs = string.Empty;string tamstamp = string.Empty;//根据学号,和时间戳选出这一段的内容,然后再根据QuestionID给每一个flag更新分数。#region 更新分数的拼接sql语句for (int i = 0; i < list.Count; i++){questionID = list[i].questionID.ToString();//将分数传给变量Fation = list[i].fraction.ToString();//判分sql,拼接sql,用case,when语句sbSql.Append(" WHEN '" + questionID + "' THEN '" + Fation + "'");}sbSql.Append(" end,"); //加“,” #endregion#region 拼接考生答案更新到数据库中//拼接更新考生答案sqlsbSql.Append("  examAnswer = CASE questionID");for (int i = 0; i < list.Count; i++){string examAnswer = list[i].examAnswer.ToString();questionID = list[i].questionID.ToString();//学生答案信息更新,when后边的是QuerstionID,sbSql.Append(" WHEN '" + questionID + "' THEN '" + list[i].examAnswer + "'");}sbSql.Append(" end");   //不加逗号“,” #endregion         studentIDs += "'" + list[0].studentID.ToString() + "'";tamstamp += "'" + list[0].timeStamp.ToString() + "'";studentIDs.Remove(studentIDs.Length - 1, 1);sbSql.Append(" where studentID in (" + studentIDs + ") and timeStamp in (" + tamstamp + ")");DataTable dt = sqlhelper.ExecuteQuery(sbSql.ToString(), CommandType.Text);}</span>

利用循环和CASE WHEN,解决了多次打开SQLHelper的问题。

SQL 提供了巨大的语句,给我们的代码带来了更大程度上的方便。

【NCRE】初遇 SQL SERVER 的 CASE WHEN相关推荐

  1. sql server中case when的用法

    CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END 注:sql server中case when的用法 - 哦呵呵G - 博客园 --同样的 ...

  2. Sql Server中Case函数的使用(上篇)----转载

    Case具有两种格式.简单Case函数和Case搜索函数. 代码 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' E ...

  3. SQL Server:CASE WHEN OREN ELSE END =不支持OR

    不支持CASE语句的WHEN子句中的OR . 我怎样才能做到这一点? CASE ebv.db_no WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500' ELSE ...

  4. Sql Server where case 满足条件执行 不满足 不做任何条件查询

    sql 里经常用的where语句中可以使用case when 常用的 select * from tb where a= case when b>0 and b<100 then 1 wh ...

  5. sql server中case的简单示例

    select *,     case          when resultrate>0 then case --<<case嵌套                          ...

  6. 在Windows Server 2016和SQL Server Always On可用性组上安装SQL Server 2019

    In this article, we will proceed with configuring a SQL Server Always On Availability Groups and per ...

  7. SQL Server中的部分存储过程

    介绍 (Introduction) SQL is an old language - almost 50 years! The first commercially-available version ...

  8. oracle stdevp函数,SQL Server与oracle两者区别之函数区别

    Oracle和SQL Server的常用函数对比 1.数学函数 ①绝对值 S:select abs(-1) value O:select abs(-1) value from dual ②取整(大) ...

  9. sql安装弹出sqlcmd_使用SQL Server命令行(sqlcmd)

    sql安装弹出sqlcmd 介绍 (Introduction) Sqlcmd allows executing queries, T-SQL sentences and SQL Server scri ...

最新文章

  1. linux之cp/scp命令+scp命令详解
  2. Android插件化开发之AMS与应用程序(客户端ActivityThread、Instrumentation、Activity)通信模型分析
  3. 学习Spring-Cloud –基础结构和配置
  4. Makefile规则介绍
  5. Linux从入门到精通系列之PPTP
  6. c语言判断任意位数能否倒序数,C语言求助!一个三位数的逆序数,总是编不对...
  7. [RK3288][Android6.0] StageFright解码流程小结
  8. python操作之更新数据库中某个字段的数据
  9. python爬取音乐下载_Python爬取全抖音好听背景音乐,一次性下载
  10. 一文整理常见Java后端面试题系列——Kafka篇(2022最新版)
  11. shader 重建世界坐标
  12. Pandas缺失值inf与nan处理实践
  13. html数独游戏源代码,数独算法及源代码
  14. web性能压力测试工具:WebBench详解
  15. 产品运输和使用振动环境的分类
  16. 伪随机二进制序列(PRBS)
  17. 关键点检测之直接回归(逐行手撕Pytorch)
  18. mongodb用户权限修改,删除以及robomongo显示问题
  19. 论「能写代码」的程序员与「会写代码」的程序员
  20. 0基础跟班学习前端的第三天(因为上完一次课需要上一天自习啦~)内容整理归纳还有附带的小练习~希望大家多动手练习(二)

热门文章

  1. 免费天气接口php,360免费天气Api接口(附使用示例)
  2. GNU/Linux与Windows魔兽争霸3局域网对战安装与配置
  3. Firefox 使用常见问题和解决方法
  4. 【VMware】在VMware ESXi 6.7中创建虚拟机
  5. 算法逻辑题-海盗分金币问题
  6. mysql查询今年过去的天数
  7. [week15] B - ZJM与生日礼物(选做)—— 字典树
  8. Titan图形数据库的应用实例讲解
  9. java生成和解析二维码实战——QRCode
  10. matlab中asc格式,matlab将图片转换成asc码txt文本格式 | 学步园