当其中一行为空时,如何将两行 nvarchar 行转换为一行

发布于 2024-11-05 07:31:17 字数 401 浏览 0 评论 0原文

抱歉,如果这与现有问题之一重复(这很简单,但我无法弄清楚,我是新的)。

我需要将一些数据从一个表迁移到另一个表(不同的结构)。

表 A 具有名字和姓氏列。 名称列

表 B 有我想要做的

SELECT Firstname + ' ' + LastName As Name FROM TableA 

,但问题是在表 B 中,某些行的名字或姓氏为空值,但不是两者都为空值(懒惰用户)。

当我将它们导入表 B 时,查询失败,因为名称列在我的新设计中不可为空,并且当我测试上面的语句时,如果名字或姓氏为空,则连接的值为空。

从我读过的内容来看,这是预期的行为,但我能做些什么来解决这个问题呢?

如果另一个为空,我想保存名字或姓氏。

sorry if this is a duplicate to one of existing questions (it's so simple but I can't figure it out, I'm new).

I need to migrate some data from one table to another (different structures).

Table A have Firstname and LastName columns.
Table B have Name column

I want to do

SELECT Firstname + ' ' + LastName As Name FROM TableA 

But the problem is that in table B, some rows have null value for firstname or lastname but not both (Lazy user).

When I import them into table B, the query fails because Name column is non-nullable in my new design and when I test the statement above, if firstname or lastname is null, the concated value is null.

From the reading that I've done, this is expected behavior but what can I do to get around this?

I want to save firstname or lastname if the other is null.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你如我软肋 2024-11-12 07:31:17
SELECT RTRIM(LTRIM(ISNULL(Firstname ,'') + ' ' + ISNULL(LastName,''))) AS Name 
FROM TableA 
SELECT RTRIM(LTRIM(ISNULL(Firstname ,'') + ' ' + ISNULL(LastName,''))) AS Name 
FROM TableA 
棒棒糖 2024-11-12 07:31:17

这可以通过单个 colaesce (返回第一个非空) & 来完成。无需搞乱空格。

select 
  coalesce(firstname + ' ' + lastname, firstname, lastname)
from TableA

This can be done with a single colaesce (return first non-null) & no need to mess about with spaces.

select 
  coalesce(firstname + ' ' + lastname, firstname, lastname)
from TableA
嘿嘿嘿 2024-11-12 07:31:17

使用合并或isnull

 select COALESCE(FirstNAme, '') + ' ' + COALESCE(LastName, '') as name from TableA

use coalesce or isnull

 select COALESCE(FirstNAme, '') + ' ' + COALESCE(LastName, '') as name from TableA
不回头走下去 2024-11-12 07:31:17
SELECT isnull (Firstname, '') + ' ' isnull (LastName, '') as Name 
FROM TableA
SELECT isnull (Firstname, '') + ' ' isnull (LastName, '') as Name 
FROM TableA
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文