内容简介:翻译自:https://stackoverflow.com/questions/37330260/sql-using-if-not-null-on-a-concatenation
如果我有桌子
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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 解决golang使用elastic连接elasticsearch时自动转换连接地址
- 使用 WebSocket 连接 RabbitMQ
- 使用poll机制处理多连接
- 使用select机制处理多连接
- Laravel 使用多个数据库连接
- 使用 ssh 连接 VirtualBox 虚拟机
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
风吹江南之互联网金融
陈宇(江南愤青) / 东方出版社 / 2014-6-1 / 55元
随着中国互联网金融浪潮高涨,P2P、众筹、余额宝、微信支付等新生事物层出不穷,加之大数据等时髦概念助阵,简直是乱花渐欲迷人眼,令媒体兴奋,公众狂热。那么,互联网金融真的能“颠覆”传统金融吗?当互联网思维对撞传统金融观念,是互联网金融的一统天下,还是传统金融业的自我革新?究竟是谁动了金融业的奶酪? 本书作者早期试水创立具有互联网金融雏形的网站,后来成为互联网金融的资深投资人,基于其多年在该领域......一起来看看 《风吹江南之互联网金融》 这本书的介绍吧!