SQL在连接中使用If Not Null

栏目: 数据库 · 发布时间: 6年前

内容简介:翻译自:https://stackoverflow.com/questions/37330260/sql-using-if-not-null-on-a-concatenation

如果我有桌子

SQL在连接中使用If Not Null

SELECT (Firstname || '-' || Middlename || '-' || Surname)  AS example_column
FROM example_table

这将显示Firstname-Middlename-Surname,例如

John--Smith
Jane-Anne-Smith

第二个(Jane的)显示正确,但是由于John没有中间名,我希望它忽略第二个破折号.

我怎么能把一个IF Middlename = NULL语句放入其中才能显示John-Smith

这是我的建议:

PostgreSQL和其他 SQL 数据库中的’a’|| NULL为空:

select firstname || coalesce ('-' || middlename, '') || '-' || surname ...

Oracle和其他SQL数据库中的’a’|| NULL =’a’:

select first name || decode (middlename, NULL, '', '-' || middlename) || '-' || surname...

我喜欢简洁.对于任何维护 程序员 来说,中间名是否为空都不是很有趣. CASE开关非常好,但它们很笨重.我想尽可能避免重复相同的列名(“中间名”).

正如@Prdp所指出的那样,答案是特定于RDBMS的.具体的是服务器是否将零长度字符串视为等效于NULL,这确定连接NULL是否产生NULL.

通常,COALESCE对于PostgreSQL样式的空字符串处理最简洁,而DECODE(* VALUE *,NULL,”…用于Oracle样式的空字符串处理.

翻译自:https://stackoverflow.com/questions/37330260/sql-using-if-not-null-on-a-concatenation


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ASP.NET网页制作教程

ASP.NET网页制作教程

王国荣 / 华中科技 / 2002-1 / 78.00元

《ASP.NET网页制作教程:从基本语法学起(附光盘)》分为:基础篇、对象应用篇、案例研究篇。奠定ASP网页制作的基础,使用Server控件制作互动网页,使用ADO.NET访问数据库;计费网费、会员管理、访客计数器Server版、访客留言板、新闻讨论群组、电子贺卡、E-mail自动传送、FIP文件上传、在线投票、在线问卷调查、在线购物、在线考试、广告回旋板、聊天室。一起来看看 《ASP.NET网页制作教程》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具