使用SQL Server 2008 R2
我试图阅读所有其他相关帖子,但没有看到任何与我想要做的相符。
我有两列Phone1
和Phone1Ext`
我只想以Phone
的格式将这些列连接为123-456-7890 x1234
。
我能做到
Select phone1 + ' x' + phone1ext AS Phone from table
并在Phone1Ext
不为null时获得我需要的结果。但如果它是NULL我得到
123-456-7890 x
如果phone1
为NULL,那么我只得到x
。
这完全是基于上面发布的SQL行所预期的。
如果phone1ext为NULL,我基本上不想连接phone1和phone1ext。我尝试了ISNULL
和COALESCE
的各种用法,但没有运气。
答案 0 :(得分:1)
如果你只有phone1
,你会得到它,如果两者都是null
你会得到空字符串。
Select phone1 + ISNULL(' x' + phone1ext, '') AS Phone from table
答案 1 :(得分:0)
答案 2 :(得分:0)
感谢你们两位的回复。我在发布之前尝试过对你的两个答案采用类似的解决方案,但总是去掉不需要的x。然后我有一个顿悟。我连接的数据是从另一个系统加载的。仔细观察后,放入的数据不是NULL值,而是“或”一系列空白。因此它们永远不会是空的!我为浪费你的时间而道歉,但是想发布这个以防万一其他人遇到类似的结果。这就是我以前用来解决它的问题:
选择
Len(phone1ext)< 1
那么Phone1
ELSE Phone1 +'x'+ phone1ext END AS Phone
从
表
再次感谢。