case when 和 coalesce
题目:
求一语句实现以下功能,有COL1 ,COL2,COL3,COL4,COL5,COL6,COL7,及ST_SIZETEMPLATECODE.
如ST_COL1,ST_COL7的值为1.2.3.4.5.6.7则
ST_SIZETEMPLATECODE为1—7,如 ST_COL7为空,则ST_SIZETEMPLATECODE为1—6,简言之就是只要头尾两个值
数据:
COL1 | COL2 | COL3 | COL4 | COL5 | COL6 | COL7 |
1 | s | d | e | f | s | |
a | d | f | e | w | q | h |
r | w | r | q | i | i | p |
a | d | |||||
a | s | d | f | f |
要求结果:
ST_SIZETEMPLATECODE |
1-s |
a-h |
r-p |
a-d |
a-f |
答案:
【1】
select
col1 || '-' ||
case when col7 is not null then col7
when col6 is not null then col6
when col5 is not null then col5
when col4 is not null then col4
when col3 is not null then col3
when col2 is not null then col2
when col1 is not null then col1 end temp
from temp070524
【2】
SELECT
COL1 || '-' || COALESCE(COL7,COL6,COL5,COL4,COL3,COL2)
FROM TBL0524
『注意』
user@8i> create table t (id int, f blob)
2 /
Table created.
user@8i> insert into t (id) values (1)
2 /
1 row created.
user@8i> select
2 id
3 ,dbms_lob.getlength(f)
4 ,nvl(dbms_lob.getlength(f),0)
5 from t
6 /
ID DBMS_LOB.GETLENGTH(F) NVL(DBMS_LOB.GETLENGTH(F),0)
---------- --------------------- ----------------------------
1 0
user@8i> select
2 id
3 ,dbms_lob.getlength(f)
4 ,coalesce(dbms_lob.getlength(f),0)
5 from t
6 /
,coalesce(dbms_lob.getlength(f),0)
*
ERROR at line 4:
ORA-00904: invalid column name
user@9i> create table t (id int, f blob)
2 /
Table created.
user@9i> insert into t (id) values (1)
2 /
1 row created.
user@9i> select
2 id
3 ,dbms_lob.getlength(f)
4 ,nvl(dbms_lob.getlength(f),0)
5 from t
6 /
ID DBMS_LOB.GETLENGTH(F) NVL(DBMS_LOB.GETLENGTH(F),0)
---------- --------------------- ----------------------------
1 0
user@9i> select
2 id
3 ,dbms_lob.getlength(f)
4 ,coalesce(dbms_lob.getlength(f),0)
5 from t
6 /
ID DBMS_LOB.GETLENGTH(F) COALESCE(DBMS_LOB.GETLENGTH(F),0)
---------- --------------------- ---------------------------------
1 0
case when 和 coalesce相关推荐
- 【PostgreSQL】行变列、非空(CASE WHEN、COALESCE)语句总结
1. 源表结构: order_id class count 111101100002 3 0 111101100012 1 3 11110112002 1 2 111101100202 2 0 2. ...
- case when和COALESCE
case when Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' ...
- 在SQL Server中使用SQL Coalesce函数
This article explores the string manipulation using SQL Coalesce function in SQL Server. 本文探讨了在SQL S ...
- MySQL 避坑宝典 -- 来自小米的开源工具
摘自: https://github.com/XiaoMi/soar/blob/master... 这是小米 soar 的默认启发规则汇总,也是 DBA 多年精华总结.熟读各个案例,对于一般的 MyS ...
- Netezza向GBase 8a迁移总结
Netezza向GBase 8a迁移总结 目 录 前言 数据类型 2.1. 综述 2.2. 数值类型 2.2.1. 精确数值数据类型 2.2.2. 近似数值数据类型 2.3. 字符串数据类型 2.3. ...
- 读SQL进阶教程笔记14_SQL编程要点
1. 消灭NULL 1.1. NULL惹人讨厌的原因 1.1.1. 进行SQL编码时,必须考虑违反人类直觉的三值逻辑 1.1.2. 指定IS NULL.IS NOT NULL的时候,不会用到索引,SQ ...
- 使用Python爬取CSDN历史博客文章列表,并生成目录
使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...
- Spark LDA 主题抽取
本文主要对使用Spark MLlib LDA进行主题抽取时遇到的工程问题做一总结,列出其中的一些小坑,或可供读者借鉴.关于LDA的具体理论等可以自行google.主题预测请参考:Spark LDA 主 ...
- 小米soar mysql优化规则
启发式规则建议 [toc] 建议使用 AS 关键字显示声明一个别名 Item:ALI.001 Severity:L0 Content:在列或表别名(如"tbl AS alias") ...
最新文章
- GitHub 总星 4w+!删库?女装?表情包?这些沙雕中文项目真是我每天快乐的源泉!...
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Real to Int
- PIL.Image convert to numpy array
- 东师计算机应用基础在线作业,东师《计算机应用基础》15春在线作业1答案
- CV之Haar特征描述算子-人脸检测
- CAD2007输出高清图片
- exchange创建邮箱组_Exchange 2013学习笔记四:新建用户邮箱
- TFN FMT800 系列矢量网络分析仪技术评测
- 大二上学期总结与感想
- jaeger,zipkin,datadog,skywalking等分布式追踪工具
- processing摸索前行(01)
- 做一台网络收音机——1动机和特点
- IT 行业最宜居的城市是哪里?
- Lua04 实例列举 ESB2CP的报文转换流程
- Python五分钟教你制作一个太阳
- 戴尔电脑恢复系统后,D盘被加密Bitlocker,要求输入48位密钥,才能打开D盘---解决过程
- luoguP1074 靶形数独
- Pytest + Selenium + Allure + Jenkins搭建简单自动化框架
- mac电脑磁盘硬盘爆满了怎么办?