这是我现在拥有的 SQL。名字和姓氏不应该丢失,因为它们在带有验证的界面上是必需的。但是,如果中间的首字母丢失,我不希望结果中有两个空格;我只想要一个空间。我可以放入一个 case 语句,但如果 SQL 已经有一个用于此目的的函数,这似乎有点过分了。有谁知道是否有用于此目的的功能?代码会是什么样子?
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 - 在 SQL Server 中使用连接的人名正确的空间量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6698454/