【NCRE】初遇 SQL SERVER 的 CASE WHEN
我们的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相关推荐
- sql server中case when的用法
CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END 注:sql server中case when的用法 - 哦呵呵G - 博客园 --同样的 ...
- Sql Server中Case函数的使用(上篇)----转载
Case具有两种格式.简单Case函数和Case搜索函数. 代码 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' E ...
- 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 ...
- Sql Server where case 满足条件执行 不满足 不做任何条件查询
sql 里经常用的where语句中可以使用case when 常用的 select * from tb where a= case when b>0 and b<100 then 1 wh ...
- sql server中case的简单示例
select *, case when resultrate>0 then case --<<case嵌套 ...
- 在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 ...
- SQL Server中的部分存储过程
介绍 (Introduction) SQL is an old language - almost 50 years! The first commercially-available version ...
- oracle stdevp函数,SQL Server与oracle两者区别之函数区别
Oracle和SQL Server的常用函数对比 1.数学函数 ①绝对值 S:select abs(-1) value O:select abs(-1) value from dual ②取整(大) ...
- sql安装弹出sqlcmd_使用SQL Server命令行(sqlcmd)
sql安装弹出sqlcmd 介绍 (Introduction) Sqlcmd allows executing queries, T-SQL sentences and SQL Server scri ...
最新文章
- linux之cp/scp命令+scp命令详解
- Android插件化开发之AMS与应用程序(客户端ActivityThread、Instrumentation、Activity)通信模型分析
- 学习Spring-Cloud –基础结构和配置
- Makefile规则介绍
- Linux从入门到精通系列之PPTP
- c语言判断任意位数能否倒序数,C语言求助!一个三位数的逆序数,总是编不对...
- [RK3288][Android6.0] StageFright解码流程小结
- python操作之更新数据库中某个字段的数据
- python爬取音乐下载_Python爬取全抖音好听背景音乐,一次性下载
- 一文整理常见Java后端面试题系列——Kafka篇(2022最新版)
- shader 重建世界坐标
- Pandas缺失值inf与nan处理实践
- html数独游戏源代码,数独算法及源代码
- web性能压力测试工具:WebBench详解
- 产品运输和使用振动环境的分类
- 伪随机二进制序列(PRBS)
- 关键点检测之直接回归(逐行手撕Pytorch)
- mongodb用户权限修改,删除以及robomongo显示问题
- 论「能写代码」的程序员与「会写代码」的程序员
- 0基础跟班学习前端的第三天(因为上完一次课需要上一天自习啦~)内容整理归纳还有附带的小练习~希望大家多动手练习(二)
热门文章
- 免费天气接口php,360免费天气Api接口(附使用示例)
- GNU/Linux与Windows魔兽争霸3局域网对战安装与配置
- Firefox 使用常见问题和解决方法
- 【VMware】在VMware ESXi 6.7中创建虚拟机
- 算法逻辑题-海盗分金币问题
- mysql查询今年过去的天数
- [week15] B - ZJM与生日礼物(选做)—— 字典树
- Titan图形数据库的应用实例讲解
- java生成和解析二维码实战——QRCode
- matlab中asc格式,matlab将图片转换成asc码txt文本格式 | 学步园