SQL Server高级内容之case语法函数

SqlServer触发器的使用 首先:说明一个触发器使用的场景。 1.服务器0001上的Employee表负责存储公司所有员工的最新数据,新员工入职、员工更换部门以及员工离职等信息都存在该表中。 2.由于业务需求,公司新上了一个OA系统,为了确保系统正常平稳运行且不影响公司其他服务器,所以OA系统就部署在了0002服务器上。 3.OA系统需要公司员工的最新信息,但是远程连接频繁调取0001服务器上的Employee表会影响 阅读详情

1.Case函数《/a>的用法

   (1)使用类似:switch-case与if-else if。

   (2)语法:

    case [字段]

      when 表达式 then 显示数据

      when 表达式 then 显示数据

      else 显示数据

    end

   (3)百分制转换素质教育

     1)如图:我们要将显示的数据转换成ABCDE,规则是90分以上显示A,80分以上显示B,以此类推。

     

    2)执行的SQL语句是:

复制代码
 1       Select ID,TestBase,
 2 
 3       Case 
 4 
 5          When testBase>=90 then ‘A’
 6 
 7               When testBase>=80 then ‘B’
 8 
 9          When testBase>=70 then ‘C’
10 
11          When testBase>=60 then ‘D’
12 
13          Else ‘E’ end as testBaseLevel,
14 
15     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语句如下:

复制代码
 1        Select ID,Name,stuSex,
 2 
 3         case
 4 
 5           when stuSex=’m’ then ‘男’
 6 
 7           when syuSex=’f’ then ‘女’
 8 
 9           else ‘其它’
10 
11         end as stuSexType,
12 
13       stuDate from Student。
复制代码

   (7)练习案例:

    1)在数据库中执行这段代码: 

复制代码
 1       use Test
 2 
 3       go
 4 
 5       create table PracticeTest
 6 
 7       (
 8 
 9         number varchar(10),
10 
11         amount int
12 
13       )
14 
15       insert into PracticeTest(number,amount) values('RK1',10)
16 
17       insert into PracticeTest(number,amount) values('RK2',20)
18 
19       insert into PracticeTest(number,amount) values('RK3',-30)
20 
21       insert into PracticeTest(number,amount) values('RK4',-10)
复制代码

    2)实现的效果如下:

     

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

复制代码
 1        select number as 单号,
 2 
 3         case 
 4 
 5           when amount>0 then amount
 6 
 7           else 0
 8 
 9         end as 收入,
10 
11         case
12 
13           when amount<0 then -amount
14 
15           else 0 
16 
17         end as 支出
18 
19       from PracticeTest
复制代码

   (8)一道面试题的练习:

    1)如图:我们写出下面执行的代码《/a>,数据库大家自己建或者我在下面附加脚本了,大家制药执行一下即可:

       

    2)执行的SQL语句:

复制代码
 1           create table Score
 2 
 3       (
 4 
 5         学号 nvarchar(10),
 6 
 7         课程 nvarchar(10),
 8 
 9         成绩 int
10 
11       )
12 
13       insert into Score values('0001','语文',87)
14 
15       insert into Score values('0002','数学',79)
16 
17       insert into Score values('0003','英语',95)
18 
19       insert into Score values('0004','语文',69)
20 
21       insert into Score values('0005','数学',84)
复制代码

    3)实现功能的SQL语句的书写

复制代码
 1         select 学号,sum(
 2 
 3         case 
 4 
 5           when 课程='语文' then 成绩
 6 
 7           else 0
 8 
 9         end) as 语文,sum(
10 
11         case 
12 
13           when 课程='数学' then 成绩
14 
15           else 0
16 
17         end) as 数学,sum(
18 
19         case
20 
21           when 课程='英语' then 成绩
22 
23           else 0
24 
25         end) as 英语
26 
27       from score  group by 学号

本文转自:http://www.hello-code.com

sql server 分区表数据迁移时巧用switch -- create partition function CREATE PARTITION FUNCTION partRange1 (INT) AS RANGE LEFT FOR VALUES (10, 20, 30) ; GO -- create partition scheme CREATE PARTITION SCHEME partScheme1 AS PARTITION partRange1 ALL TO ([PRIMARY]) ; GO -- create ta 阅读详情

相关推荐

uniapp中如何使用sqlite数据库

uniapp中如何使用sqlite数据库

m0_64692707的博客 1万+

15个常用的SQL Server高级语法

自从用了EF后很少写sql和存储过程了,需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用的,因此发出来和大家分享。   1、case…end (具体的值)   case后面有值,相当于c#中的switch case   注意:case后必须有条件,并且when后面必须是值不能为条件。   —————–case–end—语法结构———————   select name , –注意逗号   case level –case后跟条件   when 1 then '骨灰'   when 2 then '大虾'   when 3 then'菜鸟'    end

uniapp 使用sqlite时无法读取到db文件中的数据

更换sqlite 放置位置,不安官方文档位置放置 从_doc 移动到static静态文件内。这样打包后文件路径会变化。无法拿带表数据,提示找不到表,检查后名字没有拼错。使用uniapp 5+ API。在安卓手机文件内发现。

w710537643的博客 1549

uniapp:sqlite最详细教程,小白可直接粘贴复制

uniapp内使用sqlite最详细教程,小白可直接粘贴复制

sunluyi的博客 3676

uniapp离线存储数据到SQLite数据库

这里我记录下我在uniapp离线存储数据到SQLite数据库中的方法,这里主要是uniapp去操作SQLite数据库的一些操作,我把这些操作写成一个class在此记录方便自己或者需要的人使用。最近在做项目中,有需求需要app在无网络的情况下存储数据,等到有网络的时候把数据发送给后端。这个文件只是去操作数据库,至于sql语句需要根据自己的需求去动态的创建。

LueLueLue77的博客 2335

uniapp + sqlite 缓存聊天数据

【前言】缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理;App端为原生的plus.storage,无大小限制,不是缓存,是持久化的。今天这里主要演示sqlite在uniapp中的使用! 除此之外,其他数据存储方案: H5端还支持websql、indexedDB、sessionStorage App端还支持IO文件等本地存储方案。 SQLite sqlite语法学习 首先需要开启sqlite 这样你就可以在

TeroZhang的博客 2794

Sql server 中的 CASE 语句

CASE 具有两种格式: Simple CASE function: CASE input_expression      WHEN when_expression THEN result_expression     [ ...n ]      [     ELSE else_result_expression      ] END Searched...

xx510long的博客 763

从零到一:在UniApp中集成SQLite-Manage实现数据库可视化管控

本文详细介绍了如何在UniApp中集成SQLite-Manage实现数据库可视化管控,从环境准备、插件安装到数据库初始化和可视化管理界面的集成,提供了完整的实践指南。通过SQLite-Manage的可视化工具,开发者可以高效管理SQLite数据库,提升开发效率,特别适合需要快速迭代的移动应用项目。

weixin_42535703的博客 431

从零到一:在UniApp中集成SQLite-Manage实现数据库可视化

本文详细介绍了如何在UniApp中集成SQLite-Manage实现数据库可视化操作。通过图形界面管理SQLite数据库,开发者可以直观查看表结构、编辑数据并执行查询,大幅提升开发效率。文章涵盖环境准备、插件安装、基础配置、高级查询技巧及性能优化建议,特别适合UniApp开发者快速掌握数据库可视化技术。

weixin_30709061的博客 441

uniapp中使用SQLite的避坑指南:从数据库创建到表管理的实战技巧

本文深入解析了在Uniapp项目中高效、稳定地使用SQLite数据库的实战技巧。针对常见的“no such table”等SQLiteException错误,提供了从数据库初始化、表结构设计、版本迁移到查询优化与错误处理的完整解决方案,帮助开发者构建健壮的本地数据层。

weixin_29290379的博客 514

从零到一:在UniApp中集成SQLite-Manage实现数据库可视化高效管理

本文详细介绍了如何在UniApp中集成SQLite-Manage插件实现数据库可视化高效管理。通过可视化界面和内置工具类,开发者可以大幅提升SQLite数据库的操作效率,减少调试时间。文章涵盖环境准备、插件安装、可视化界面集成、数据库工具类使用以及性能优化等实战技巧,帮助开发者快速掌握UniApp中的数据库管理方法。

weixin_42535703的博客 397

新手使用uniapp使用sqlite常见错误--“code“: -1404,android.database.sqlite.SQLiteException: no such table: xxx

新手使用uniapp使用sqlite常见错误--"code": -1404,android.database.sqlite.SQLiteException: no such table: xxx

Z_B_L的博客 1915

uniapp 使用本地数据库

//我这个封装通过promise返回出去!!! //我这个封装通过promise返回出去!!! //创建数据库或者有该数据库就打开, 这一步必须要! export function openSqlite(cb) { //创建数据库或者打开 //这plus.sqlite只在手机上运行 plus.sqlite.openDatabase({ name: 'wallet', //数据库名称 path: '_doc/wallet.db', //数据库地址,...

qq_32519421的博客 7795

uniapp中SQLite表缺失问题的排查与解决——从错误代码-1404到表创建逻辑

本文详细解析了uniapp中SQLite表缺失问题(错误代码-1404)的排查与解决方法。从数据库路径差异分析到智能建表方案,提供了四步诊断法、健壮的表管理策略及跨平台兼容方案,帮助开发者彻底解决android.database.sqlite.SQLiteException异常问题。

weixin_27741699的博客 342

uniapp中使用SQLite的避坑指南:从报错-1404到完整数据库操作

本文深入解析了在Uniapp开发中遇到SQLiteException -1404错误(表不存在)的根本原因,并提供了从数据库初始化、表状态检查到完整CRUD操作封装的系统解决方案。文章详细阐述了Uniapp沙盒环境与本地文件的差异,指导开发者构建健壮的本地数据存储模块,有效规避常见陷阱,提升应用稳定性。

weixin_29237635的博客 98

uniapp中SQLite表缺失问题的排查与解决——以“no such table”错误为例

本文详细解析了uniapp开发中遇到的SQLite表缺失问题(no such table错误),揭示了环境隔离导致的数据库文件差异,并提供了动态检测与创建表的完整解决方案。通过封装SQLite工具类和初始化流程示例,帮助开发者有效解决Android/iOS平台下的数据库兼容性问题,提升应用数据存储可靠性。

weixin_42614269的博客 244

UniApp集成SQLite实战:从离线存储到跨端适配的完整指南

在移动端开发中,当数据量增长到数万条且需要复杂筛选、排序和离线操作时,传统的键值对缓存往往力不从心,页面卡顿甚至白屏问题频发。关系型数据库SQLite凭借轻量、高效、支持标准SQL的优势,成为端侧结构化数据存储的理想选择。通过本地数据库管理,开发者可以像操作服务端一样对商品、日志等业务数据进行建模和查询,并结合索引优化、事务批量写入等工程手段显著提升性能,同时有效规避SQL注入风险。本文从SQLite核心原理出发,结合跨平台框架UniApp的实践场景,详细介绍数据库选型、环境搭建、plus.sqlite A

weixin_32308101的博客 242

STM32F407+LAN8720A+LwIP实战:FreeModbus TCP从机功能开发指南

本文详细介绍了基于STM32F407和LAN8720A硬件平台,结合LwIP协议栈实现FreeModbus TCP从机功能的开发指南。内容涵盖硬件连接、LwIP移植、FreeModbus TCP从机实现、任务调度及调试技巧,为工业控制领域的以太网通信开发提供实用参考。

weixin_29190651的博客 546
上一篇: IT小兵总结IT人特点及挽留IT人才的九大策略
下一篇: SQL Server高级内容之子查询和表链接
普通网友
博客等级 码龄14年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值