【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 ...
随机推荐
- shell 中的for、while循环及if语句
shell与其他语言一样也支持for.while循环 for循环的一般格式如下: #!/bin/sh for 变量 in 列表 do command command command ......... ...
- BackBox错误,无法获得锁...资源暂时不可用...无法锁定管理目录
今天准备给BackBox安装leafpad时,输入 sudo apt install leafpad 后出现了如下的错误提示: E: 无法获得锁 /var/lib/dpkg/lock - open ( ...
- 第六章——决策树(Decision Trees)
决策树是强大的,多功能的机器学习算法. 6.1 训练和可视化一个决策树 在iris数据集训练DecisionTreeClassifier: from sklearn.datasets import l ...
- 玩转Spring MVC(三)----spring基本配置文件
这篇文章总结一下spring mvc的基本配置,首先贴一张我的项目的目录截图,有一些多余的文件,大家不必在意: 用到的一些jar包在这:<a>http://download.csdn.ne ...
- 十九. 想快速开发app,需要找外包吗?
健生干货分享:第19篇 摘要:最近和两位准备开发app的创业者聊天,他们之前没有移动互联网的相关经验,有的是想法和资金.他们在纠结:想快速开发app,需要找外包吗? 最近和两位想开发app的创业者聊天 ...
- Python 文件读写的三种模式和区别
#coding=utf-8 #__author:Administrator #__time:2018/5/9 13:14 #__file_name:text1 import io #能调用方法的一定是 ...
- 好代码是管出来的——浅谈.Net Core的代码管理方法与落地(更新中...)
软件开发的目的是在规定成本和时间前提下,开发出具有适用性.有效性.可修改性.可靠性.可理解性.可维护性.可重用性.可移植性.可追踪性.可互操作性和满足用户需求的软件产品. 而对于整个开发过程来说,开发 ...
- NET Core 跨平台执行命令、脚本
一.前言 我们可能会遇到需要在程序中执行一些系统命令,来获取一些信息:或者调用shell脚本..NET Core 目前已经可以跨平台执行,那么它如何跨平台执行命令呢,请看下面的讲解. 二.Proces ...
- status.go
))) return key }
- types.go
} type ChannelStatsList []*ChannelStats func (c ChannelStatsList) Len() int { return len(c) } func ( ...