[英]Correct Amount of Spaces with concatenated person's name in SQL Server
这是我现在拥有的 SQL。 永远不要缺少名字和姓氏,因为它们在验证界面上是必需的。 但是,如果缺少中间的首字母,我不希望结果中有两个空格; 我只想要一个空间。 我可以写一个案例陈述,但如果 SQL 已经为此目的有一个 function ,这似乎有点过头了。 有谁知道是否有用于此目的的 function? 代码会是什么样子?
SELECT ISNULL(contact.firstname, '')
+ ' '
+ ISNULL(contact.middleinitial, '')
+ ' '
+ ISNULL(contact.lastname, '')
FROM dbo.contact
SELECT
ISNULL(contact.firstname, '') +
ISNULL(' ' + contact.middleinitial + ' ', ' ') +
ISNULL(contact.lastname, '')
但是,您应该删除名字、姓氏的 ISNULL(定义为 NOT NULL?)或添加一些修剪
SELECT
LTRIM(RTRIM(
ISNULL(contact.firstname, '') +
ISNULL(' ' + contact.middleinitial + ' ', ' ') +
ISNULL(contact.lastname, '')
))
在 SQL Server 2012 及更高版本中,您可以使用 CONCAT function:
SELECT CONCAT(contact.firstname, ' ' + contact.middleinitial, ' ' + contact.lastname)
FROM dbo.contact
如果middleinitial是 null 然后在 null 值上附加空格将导致 null 值和 CONcateCAT 将在 concateCAT489DFF02 值期间跳过此 null 值。
SELECT REPLACE(ISNULL(contact.firstname, '') + ' ' + ISNULL(contact.middleinitial, '') + ' ' + ISNULL(contact.lastname, '')
,' ',' ')
FROM dbo.contact
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.