SQL创建新的输出字段

news2024/12/22 19:28:48

SQL创建新的输出字段

  • 1、准备数据
  • 2、对单个字段或者多个字段进行数值计算
  • 3、数值计算
  • 4、字段拼接
  • 5、字段使用别名
  • 6、 CASE WHEN逻辑转换
    • case when 语法一
    • case when 语法二
    • case when 注意点
      • 查询的值可以为任何值(例如可以: select *)
      • 可以重命名
      • 没有ELSE部分时,如果所有条件表达式都不满足,则返回NULL
    • 实操
    • case when 逻辑嵌套

1、准备数据


CREATE TABLE `t_stock_trans_dtl` (
  `trans_id` varchar(100) NOT NULL COMMENT '交易流水号',
  `stock_name` varchar(20) NOT NULL DEFAULT '' COMMENT '股票名称',
  `stock_code` varchar(10) NOT NULL DEFAULT '' COMMENT '股票代码',
  `opt_tm` datetime NOT NULL DEFAULT '1900-01-01 00:00:00' COMMENT '操作时间',
  `opt_typ` varchar(10) NOT NULL DEFAULT '' COMMENT '操作类型',
  `price` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '单价',
  `volume` int(11) NOT NULL DEFAULT '0' COMMENT '数量',
  `fee` decimal(18,5) NOT NULL DEFAULT '0.00000' COMMENT '手续费',
  PRIMARY KEY (`trans_id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='股票交易明细';

INSERT INTO `t_stock_trans_dtl` VALUES ('20010406000023','洪都航空','sh600316','2001-04-06 10:42:34','买入',22.40,600,3.36000),('20050826000303','洪都航空','sh600316','2005-08-26 13:40:31','卖出',6.98,-300,5.00000),('20130301000933','比亚迪','sz002594','2013-03-01 09:33:36','买入',25.25,600,3.78750),('20140307000393','比亚迪','sz002594','2014-03-07 13:39:30','买入',56.91,600,8.53650),('20150508000075','洪都航空','sh600316','2015-05-08 10:47:54','卖出',36.66,-300,2.74950),('20150724000395','比亚迪','sz002594','2015-07-24 13:19:55','买入',55.55,1200,16.66500),('20150902000941','大禹节水','sz300021','2015-09-02 09:44:18','买入',11.41,6100,17.40025),('20160318000314','大禹节水','sz300021','2016-03-18 13:01:44','卖出',12.62,-3000,9.46500),('20160930000303','比亚迪','sz002594','2016-09-30 13:40:31','卖出',56.98,-2400,34.18800),('20170310000425','比亚迪','sz002594','2017-03-10 14:22:54','买入',51.59,2000,25.79500),('20170630000132','大禹节水','sz300021','2017-06-30 11:53:20','买入',7.87,1300,2.55775),('20171110000142','大禹节水','sz300021','2017-11-10 11:44:24','买入',7.25,5000,9.06250),('20171229000410','比亚迪','sz002594','2017-12-29 14:51:04','买入',61.88,3600,55.69200);

表如下:
请添加图片描述

2、对单个字段或者多个字段进行数值计算

SELECT stock_name, price, volume, volume / 100
FROM t_stock_trans_dtl;

SELECT stock_name, price, volume, volume * price
FROM t_stock_trans_dtl

如图所示:
请添加图片描述

请添加图片描述

3、数值计算

请添加图片描述

下方距离如图:
请添加图片描述

请添加图片描述

4、字段拼接

比如:如何按“洪都航空(sh600316)”展示股票名称和股票代码?

SELECT CONCAT(stock_name,'(',stock_code,')') 
FROM t_stock_trans_dtl

如图所示:
请添加图片描述

5、字段使用别名

SELECT CONCAT(stock_name,'(',stock_code,')') AS stock
FROM t_stock_trans_dtl

如图所示:
请添加图片描述

6、 CASE WHEN逻辑转换

case when 有两种 语法,如下:

在这里插入图片描述

下面通过这两种语法实现下方需求:

如何根据买入数量,区分大单、中单、小单?
请添加图片描述

case when 语法一

SELECT volume,
CASE 
	WHEN volume >= 3000 THEN
		'大单'
	WHEN volume > 600 AND volume < 3000 THEN
		'中单'
	ELSE
		'小单'
END 
FROM t_stock_trans_dtl
WHERE opt_typ = '买入';

操作及 输出如下图:
请添加图片描述

case when 语法二

SELECT volume,
CASE volume
	WHEN 600 THEN
		'你好'
	ELSE
		'大家好'
END 
FROM t_stock_trans_dtl WHERE opt_typ = '买入';

操作及 输出如下图:
请添加图片描述

case when 注意点

查询的值可以为任何值(例如可以: select *)

SELECT *,
CASE WHEN volume >= 300 THEN
		'大单'
	ELSE
		'小单'
END
FROM t_stock_trans_dtl
WHERE opt_typ = '买入';

操作及 输出如下图:
请添加图片描述

可以重命名

SELECT *,
CASE WHEN volume >= 300 THEN
		'大单'
	ELSE
		'小单'
END AS '单子'
FROM t_stock_trans_dtl
WHERE opt_typ = '买入';

操作及 输出如下图:
请添加图片描述

没有ELSE部分时,如果所有条件表达式都不满足,则返回NULL

# 没有ELSE部分时,如果所有条件表达式都不满足,则返回NULL。
# 每一个CASE WHEN都应该有ELSE分支!!!
SELECT volume,
CASE 
	WHEN volume >= 3000 THEN
		'大单'
	WHEN volume > 600 AND volume < 3000 THEN
		'中单'
END 
FROM t_stock_trans_dtl
WHERE opt_typ = '买入';

如图所示:
请添加图片描述

实操

对于买入的交易,交易数量为正数,而卖出的交易,交易数量为负
数。这就导致交易金额(交易价格*交易数量)的返回值有正有负。如何根据
交易类型做转换,交易金额全部返回正数?

SELECT volume, price,
CASE WHEN opt_typ = '买入' THEN price*volume
WHEN opt_typ = '卖出' THEN 0-price*volume
ELSE 0
END AS 交易
FROM t_stock_trans_dtl;

另一种写法

SELECT volume, price,
CASE opt_typ
WHEN '买入' THEN price*volume
WHEN '卖出' THEN 0-price*volume
ELSE 0
END AS 交易
FROM t_stock_trans_dtl;

请添加图片描述

case when 逻辑嵌套

两种语法格式,都可以多层嵌套,但不推荐多层嵌套。
建议最多嵌套两层并使用括号格式化SQL语句。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)(转)

转载至&#xff1a;https://www.cnblogs.com/fuzongle/p/12834080.html Docker 快速安装Jenkins完美教程 &#xff08;亲测采坑后详细步骤&#xff09; Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0…

组织:阿米巴-事业部-成员公司

昨天有朋友讲到阿米巴-内部交易的成本与效率、讲到乌合之众山头团伙合并财报。昨天也都谈到方向大致正确品质大致不错极低规模成本、方向老钻错牛角尖品质精密高成本。我这篇文章就是&#xff1a;群中单句交流-朋友圈提炼段落-公众号整理成文章&#xff0c;这么来的。阿米巴&am…

从零开始带你实现一套自己的CI/CD(一)Jenkins

目录一、简介二、环境准备2.1 安装Docker和Docker-compose2.2 远程仓库Github/Gitee/GitLab2.3 部署Jenkins三、配置Jenkins3.1 Jenkins配置源码拉取地址3.2 Jenkins配置Maven构建代码3.2.1 准备jdk3.2.2 配置Maven3.2.3 Jenkins配置JDK&Maven并保存3.3 配置Jenkins任务构建…

【日常折腾】重新安装Windows7,做好ghost备份,迁移主目录,日常软件office,chrome,搜狗输入法,电脑管家,一键ghost进行备份。

目录前言1&#xff0c;关于Windows2&#xff0c;电脑起码分两个盘c、d盘3&#xff0c;因为主目录切换了&#xff0c;相关的其他人软件的数据都会迁移过去4&#xff0c;安装office软件3件套&#xff0c;不要全家桶5&#xff0c;安装电脑管家&#xff0c;还是选择腾讯吧6&#xf…

17条卢松松近期言论汇总

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 本文汇集了前段时间卢松松写的段子&#xff0c;有心情感悟、工作感悟、做直播带货、创业的感悟。关注互联网、草根创业者的朋友可以看看&#xff01; (1) 人最舒服的是什么时候呢?我认为&#xff…

RabbitMQ的工作模式

一.RabbitMQ的一些知识 1.消息属性 RabbitMQ是基于AMQP消息传输协议来实现的消息中间件&#xff1b;类似HTTP有header和body两部分数据&#xff0c;Message是RabbitMQ中的消息体概念。 Message由Properties和Body组成&#xff0c;前者是一些元信息&#xff0c;如消息的优先级…

【LeetCode】1769.移动所有球到每个盒子所需的最小操作数

题目描述 有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes &#xff0c;其中 boxes[i] 的值为 ‘0’ 表示第 i 个盒子是 空 的&#xff0c;而 boxes[i] 的值为 ‘1’ 表示盒子里有 一个 小球。 在一步操作中&#xff0c;你可以将 一个 小球从某个盒子移动到一个与之相邻的…

整理Ubuntu深度学习服务器初始化操作

前言 这两年总是换服务器&#xff0c;每次配置都挺麻烦的要搜一堆东西&#xff0c;干脆直接整理一下供自己以后参考。 版本说明 Ubuntu 20.04 桌面版 系统配置 配置SSH 安装ssh sudo apt update sudo apt install openssh-server检查ssh状态 sudo systemctl status ssh…

js将图片或者文件转成base64格式的两种方法

场景一&#xff0c;项目assets资源里面的图片本地图片&#xff0c;重点如下 需要了解 canvas的基本操作&#xff0c;canvas.toDataURL 方法 HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型&#xff0c;默认为 PNG 格式。图片…

session和cookie的区别

文章目录一概念理解1、无状态的HTTP协议&#xff1a;2、会话&#xff08;Session&#xff09;跟踪&#xff1a;二cookie1、会话Cookie和持久Cookie2、Cookie具有不可跨域名性三. Session1、两个问题&#xff1a;2、session的创建&#xff1a;3、禁用cookie&#xff1a;四. 总结…

GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点

GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点 效果 1、html官方版 <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <t…

c实现mp4解封装

文章目录前序MP4简介MP4的定义MP4的封装格式Box类型详解Box格式ftyp boxmvhd boxtkhd boxhdlr boxmdat boxstbl boxstsd boxstco boxstsc boxstsz boxstts boxstss boxdemuxer demo的实现(视频数据部分)总结&#xff1a;工具介绍源码参考前序 最近为了更加深入了解音视频demux…

nginx源码分析--基数树

typedef struct {ngx_radix_node_t *root;ngx_pool_t *pool;ngx_radix_node_t *free;char *start;size_t size; } ngx_radix_tree_t;预备知识 1.基数树也是一种二叉查找树,目前官方模块中仅geo模块使用了基数树.2.ngx_radix_tree_t基数树要求…

微服务框架 SpringCloud微服务架构 8 Gateway 网关 8.7 网关的cors 跨域配置

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构8 Gateway 网关8.7 网关的cors 跨域配置8.7.1 跨域问题处理8.7.2 案例8.7.…

深入讲解Netty那些事儿之从内核角度看IO模型(下)

接上文深入讲解Netty那些事儿之从内核角度看IO模型&#xff08;上&#xff09; epoll 通过上边对select,poll核心原理的介绍&#xff0c;我们看到select,poll的性能瓶颈主要体现在下面三个地方&#xff1a; 因为内核不会保存我们要监听的socket集合&#xff0c;所以在每次调用…

最全面的Spring教程(六)——WebSocket

前言 本文为 【SpringMVC教程】WebSocket 相关知识介绍&#xff0c;具体将对WebSocket进行简介&#xff0c;并通过实战案例对WebSocket的使用进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考&#xff1a;【Java全栈学…

SpringBoot接口 - 如何优雅的写Controller并统一异常处理?

内容目录 为什么要优雅的处理异常 实现案例ControllerAdvice异常统一处理Controller接口运行测试 进一步理解ControllerAdvice还可以怎么用&#xff1f;ControllerAdvice是如何起作用的&#xff08;原理&#xff09;&#xff1f; 示例源码 更多内容 SpringBoot接口如何对异…

【Pygame实战】代码版《舞动青春*炫舞》能否引领音舞游戏再一次爆发?“你还记得最浪漫的舞蹈游戏炫舞吗?”

导语 Hello&#xff0c;大家好呀&#xff01;我是木木子吖&#xff5e; 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚。 听说关注我的人会一夜暴富发大财哦~ &#xff08;哇哇哇 这真的爱&#x1f60d;&#x1f60d;&#xff09; 所有文章完整的素材源码都在&#…

GIS工具maptalks开发手册(二)01-11——渲染文字及参数注释

GIS工具maptalks开发手册(二)01-11——渲染文字及参数注释 效果 代码 index.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <title>…

E. Gardener and Tree(拓扑排序)

Problem - 1593E - Codeforces 树是一个无定向的连接图&#xff0c;其中没有循环。这个问题是关于无根的树。一棵树的叶子是一个顶点&#xff0c;它最多与一个顶点相连。 园丁维塔利用n个顶点种了一棵树。他决定对这棵树进行修剪。为了做到这一点&#xff0c;他进行了一些操作…