Sql server 2008 r2 连接不存在NULL的SQL字段

Sql server 2008 r2 连接不存在NULL的SQL字段,sql-server-2008-r2,Sql Server 2008 R2,使用SQL Server 2008 R2 我试图阅读所有其他相关帖子,但没有看到任何与我尝试做的内容相匹配的帖子 我有两列Phone1和Phone1Ext` 我只想将这些列连接为Phone,格式为123-456-7890 x1234 我能行 Select phone1 + ' x' + phone1ext AS Phone from table 并在Phone1Ext不为空时获得所需的结果。但如果它是空的,我得到 123-456-7890 x 如果phone1为空,那么我只得到一个x 基于上

使用SQL Server 2008 R2

我试图阅读所有其他相关帖子,但没有看到任何与我尝试做的内容相匹配的帖子

我有两列
Phone1
和Phone1Ext`

我只想将这些列连接为
Phone
,格式为
123-456-7890 x1234

我能行

Select phone1 + ' x' + phone1ext AS Phone from table
并在
Phone1Ext
不为空时获得所需的结果。但如果它是空的,我得到

123-456-7890 x
如果
phone1
为空,那么我只得到一个
x

基于上面发布的SQL行,这一切都是意料之中的


如果phone1ext为NULL,我基本上不想连接phone1和phone1ext。我尝试了
ISNULL
COALESCE
的各种用法,但没有任何运气。

如果你只有
phone1
你会得到它,如果两者都是
null
你会得到空字符串

Select phone1 + ISNULL(' x' + phone1ext, '') AS Phone from table

非常简单:

select
case when ph2 is not null 
then ph1 + 'x' + ph2
else ph1
end
from
ph

谢谢你们两位的回复。在发布之前,我已经尝试过类似的解决方案,但总是使用不需要的x。然后我顿悟了。我连接的数据是从另一个系统加载的。仔细观察后,放入的数据不是空值,而是“”或一系列空格。因此它们从来都不是空的!我很抱歉浪费了你的时间,但我想发布这篇文章,以防其他人遇到类似的结果。这是我在我的案例中用来解决的问题:

挑选 Len(phone1ext)<1时的情况 然后打电话1 ELSE Phone1+“x”+Phone1下一个结束为电话 从
桌子

再次感谢