【Teradata SQL】一个字段为空即取另外一个字段(连续取4个字段)-case when
目标:如果col1为空则取col2的值,如果col2也为空则取col3的值,如果col3还为则取col4的值,如果四个字段均为空则取默认值
1.数据准备
create multiset table test1
(
col_type varchar(20),
col1 varchar(10),
col2 varchar(20),
col3 varchar(30),
col4 varchar(10)
)no primary index; insert into test1 values ('fetch_col1','col1','col2','col3','clo4'); --字段均有值
insert into test1 values ('fetch_col1','col1','','col3','clo4');--col2无值
insert into test1 values ('fetch_col1','col1','col2','','clo4');--col3无值
insert into test1 values ('fetch_col1','col1','col2','col3','');--col4无值 insert into test1 values ('fetch_col2','','col2','col3','clo4');--col1无值
insert into test1 values ('fetch_col2','','col2','','clo4');--col3无值
insert into test1 values ('fetch_col2','','col2','col3','');--col4无值
insert into test1 values ('fetch_col2','','col2','','');--仅col2有值,其余均无值 insert into test1 values ('fetch_col3','','','col3','clo4');--col1和col2无值
insert into test1 values ('fetch_col3','','','col3','');--仅col3有值,其余均无值 insert into test1 values ('fetch_col4','','','','clo4');--仅col4有值,其余均无值 insert into test1 values ('fetch_default','','','','');--全部无值
2.查询结果
sel
col_type,
case
when col1 <>'' then col1
when col2 <> '' then col2
when col3 <>'' then col3
when col4 <>'' then col4
else 'default'
end fetch_value
,col1,col2,col3,col4
from test1 order by 3 desc,4 desc,5 desc,6 desc;

【Teradata SQL】一个字段为空即取另外一个字段(连续取4个字段)-case when的更多相关文章
- Django数据库设计中字段为空的方式
今天在做数据库设计的时候,设计了如下User表,其中我把email和phone字段设置为允许为空: class User(models.Model): username = models.CharFi ...
- oracle中使用sql查询时字段为空则赋值默认
转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...
- 解决用 VB 中用 ADO 访问 数据库时 SQL 查询处理 Null 值的问题( 使用 iff(isNull(字段), 为空时的值,不为空时的值) 来处理)
程序的环境是 VB6 + ADO + Access,在用 SQL 语句查询时,希望把两个字段合并成一个字段,但其中一个字段 Null 值直接导致两个字段合并后也变成了 Null 值.之前只能用 VB ...
- oracle判断一个字段为空
比如 insert into table a (a1,b1)values("a1",''); 对于这种情况,因为表里存的是'',其实是没有内容的,要查询这个字段,不能直接使用 se ...
- 字段为空sql语句,设置当前模式
delete from t_corpinfo where CORPID='' and CORPNAME='' 该命令是删除字段为空的记录 SET CURRENT SCHEMA DB2INST1;
- PL/SQL中判断字段为空
功能写完发现数据库里好多关键字段是空的,可以直接删掉,可直接: DELETE FROM 表名 WHERE 字段 IS NULL OR TRIM(字段) = ''
- SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...
- in条件后面有多个字段,in后面只能有一个字段 Operand should contain 1 column(s)
今天在sql测试的时候发现了这个错误:Operand should contain 1 column(s). 原因是in条件后面有多个字段,in后面只能有一个字段.
- Sql Server 中将由逗号“,”分割的一个字符串转换为一个表集,并应用到 in 条件中
Sql Server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件 ,,) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql ...
随机推荐
- resteasy上传文件写法
resteasy服务器代码 @Path(value = "file") public class UploadFileService { private final String ...
- capwap学习笔记——capwap的前世今生(转)
1 capwap的前世今生 1.1 胖AP.瘦AP.AC 传统的WLAN网络都是为企业或家庭内少量移动用户的接入而组建的.因此,只需要一个无线路由器就可以搞定了,就好像现在家用的无线路由器就是胖AP. ...
- Vim手册
什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是 ...
- SSM-Spring-14:Spring中默认自动代理DefaultAdvisorAutoProxyCreator
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 默认自动代理DefaultAdvisorAutoProxyCreator 本处没有什么要讲的,放原代码 ISo ...
- python自定义库文件路径
各有各的小烦恼,各有的小期待 这是人家私事,不要大嘴巴 在Pycharm中import whois时,总是失败 原因是安装了python3.x相关操作过程,将环境变量path中关于Python的配置c ...
- SecureCRT在同一窗口打开多个标签
打开SecureCRT - 文件 - 连接 ,勾选"在标签页中打开".
- 如何设置PPT中的演讲者模式
①1.首先将投影设备或其它幻灯片输出设备连接到笔记本或 PC 上,在 Windows 7 中按Win 键+P 并选择扩展模式将当前笔记本或 PC 的显示器与投影显示输出设备设置为扩展模式. ②我们 ...
- 借助HTML中的特殊符号在markdown中打印出来
转自:https://blog.csdn.net/html5_/article/details/21639475 HTML中的特殊符号 原创 2014年03月20日 18:35:23 标签: HTML ...
- 【bzoj4174】tty的求助 莫比乌斯反演
Description Input 输入仅有一行. 第一行仅有两个正整数N,M 和一个实数 x. Output 输出共1行,由亍结果过大,所以请输出上式对998244353 取模的结果. Sampl ...
- BZOJ_1823_[JSOI2010]满汉全席_2-sat+tarjan
BZOJ_1823_[JSOI2010]满汉全席_2-sat 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1823 分析:一道比较容易看出来的 ...