when

sql case when end as

旧时模样 提交于 2021-02-15 13:02:01
CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE 。 首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下: SELECT CASE WHEN < A > THEN < somethingA > WHEN < B > THEN < somethingB > ELSE < somethingE > END as < myColumnSpec > 在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子: USE pubs GO SELECT Title, CASE WHEN price IS NULL THEN ' Unpriced ' WHEN price < 10 THEN ' Bargain ' WHEN price BETWEEN 10 and 20 THEN ' Average ' ELSE ' Gift to impress relatives ' END as ' Price Range ' FROM titles ORDER BY price GO 这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE : SELECT ' Number of

SQL case when 语句解析

▼魔方 西西 提交于 2020-04-07 07:00:42
一,原始单表(也是从其他博客看到)及其查询后效果。 原始表: 查询后(要求查询后按照洲统计人口): 二,SQL探讨 *初始化insert语如下: INSERT INTO cptable VALUES (NULL ,'中国',600); INSERT INTO cptable VALUES (NULL ,'美国',100); INSERT INTO cptable VALUES (NULL ,'加拿大',100); INSERT INTO cptable VALUES (NULL ,'英国',200); INSERT INTO cptable VALUES (NULL ,'法国',300); INSERT INTO cptable VALUES (NULL ,'日本',250); INSERT INTO cptable VALUES (NULL ,'德国',200); INSERT INTO cptable VALUES (NULL ,'墨西哥',50); INSERT INTO cptable VALUES (NULL ,'印度',250); *SQL查询语句 表达方式A: SELECT SUM(population), CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国

SQL case when 语句学习

随声附和 提交于 2020-04-06 20:07:07
刚刚同时跑来问我一个sql语句顿时,一看我有点蒙,因为之前没有用过,所以在这里写下学习笔记加深印象。 语法如下: CASE value WHEN [compare-value01] THEN result01 [WHEN [compare-value02] THEN result01 ...] [ELSE result] END 此sql语句我认为有点像条件语句。 意思是: 条件一,当字段value的值等于"compare-value"时,赋值为result01; 条件二,当字段value的值等于"compare-value"时,赋值为result02; ... 条件N,,赋值为result02; 结束 这么说肯定感觉很抽象,上实例,一看就明白了。 usersa表及数据如下图 样例1查询SQL select *, (CASE username WHEN "李四" THEN "四" WHEN "张三" THEN "三" ELSE 'more' END )as "Column" FROM usersa; 查询结果图 样例2查询SQL select sex, count(case username when "李四" then "李四" end) as "李四", count(case username when "张三" then "张三" end) as "张三" from

SQL学习精粹之group by分组

若如初见. 提交于 2019-12-04 06:46:33
group by 有一个原则, 不分组必聚合原则: 就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要) 一、group by取最大值 面试遇到一个分组取最大值的问题 例子一 取最新充值记录 充值记录表 CREATE TABLE chongZhi ( id int not null primary key AUTO_INCREMENT COMMENT '主键编号', userId int COMMENT '充值用户id', jine int COMMENT '充值金额', date date COMMENT '充值日期' )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '充值记录表'; insert into chongZhi(userId,jine,date) value(1,20,'2016-10-28'); insert into chongZhi(userId,jine,date) value(1,60,'2016-10-29'); insert into chongZhi(userId,jine,date) value(1,55,'2016-10-30'); insert into chongZhi(userId,jine,date) value(2,100,'2016-10-22')

SQL语句行列转换两种方法 case ...when 和pivot函数应用

北城余情 提交于 2019-11-30 06:11:39
SQL语句行列转换两种方法 case ...when 和pivot函数应用SQL语句行列转换两种方法 case ...when 和pivot函数应用,运用pivot 函数只支持数据库版本2005以上的。一般运用case when else end 的方法 比较多,比较普遍。 /*创建数据库*/ CREATE DATABASE tmp go USE tmp go /*创建数据库测试表*/ CREATE TABLE [Scores] ( [ID] INT IDENTITY(1, 1) PRIMARY KEY , [Student] VARCHAR(20) , [Subject] VARCHAR(30) , [Score] FLOAT ) go TRUNCATE TABLE Scores /*插入数据库测试数据信息*/ INSERT INTO Scores ( Student, Subject, Score ) VALUES ( 'test001', '语文', '90' ) INSERT INTO Scores ( Student, Subject, Score ) VALUES ( 'test001', '英语', '85' ) INSERT INTO Scores ( Student, Subject, Score ) VALUES ( 'text002', '语文', '90'

MyBatis基础学习:动态SQL和SQL语句构建器类

微笑、不失礼 提交于 2019-11-27 10:12:06
Mybatis介绍 MyBatis( http://www.mybatis.org/ ) 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 动态 SQL 作用 MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多的元素需要来了解。MyBatis 3 大大提升了它们,现在用不到原先一半的元素就可以了。MyBatis 采用功能强大的基于 OGNL 的表达式来消除其他元素。 if 动态 SQL 通常要做的事情是有条件地包含

用tomcat搭建https

喜你入骨 提交于 2019-11-27 05:37:22
HTTPS,安全的http连接,并且苹果也宣布,在将来他们将不在支持http,所有的链接均走https。这里借助jdk的工具和tomcat服务器,搭建一个HTTPS的服务器 1、进入java jdk的bin目录,运行keytool工具 keytool有如下参数 可以运行以下命令 keytool -genkey -alias tomcat -keyalg RSA -keystore D:tmp\tomcat 【解释:生成的文件名为 tomcat,https利用的非对称加密算法为RSA,把文件生成在D:tmp/目录下】 逐步按照提示填写相关信息 然后在我的D盘中生成了一个文件 tomcat 至此,证书已经生成完毕,接下来配置tomcat,使之支持https,本次测试中用的tomcat版本为tomcat7 2、配置tomcat 路径:apache-tomcat-7.0.54\conf\server.xml文件 修改Connector 8443的相关配置 原始文件为 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 修改为: <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"