Sql 如何将null添加到字符串中,但结果不会为null?

Sql 如何将null添加到字符串中,但结果不会为null?,sql,sql-server,Sql,Sql Server,我将我的代码模拟为如下简单代码: select 'a'+ ( select 'b'+ ( select 'c' from tbl_one t3 inner join tbl_alpha a t3.id=a.id where t1.id=t3.id for xml path('') ) from tbl_one t2 where t1.id=t2.id for xml p

我将我的代码模拟为如下简单代码:

select 'a'+
(
    select 'b'+
    (
        select 'c'
        from tbl_one t3
        inner join tbl_alpha a t3.id=a.id
        where t1.id=t3.id
        for xml path('')
    )
    from tbl_one t2
    where t1.id=t2.id
    for xml path('')
)
from tbl_one t1
如果我的
选择“c”
部分为空,我的结果应该为空,但我不知道发生了什么,我没有得到空结果,只显示
选择“a”
部分。 我希望我的结果是
NULL
abc
,但我的查询只给了我
'a'

因此,我没有任何解释来调试我的查询。

我试图调试它,但无法。你能创建一个吗?@ZoharPeled实际上我在其他例子中没有得到这个错误,但是假设tbl_one是sys.schemas,tbl_alpha是sys.tables如果你正确地对它们进行JIN,你将得到
abc
如果不是
NULL
我实际上不知道为什么我的查询只给了我
a
我问是否有其他人有这个问题,告诉我该怎么做。谢谢:)你能编辑你的问题,将复制问题的样本数据的相关表格DDL+一些DML包括在内吗?@ZoharPeled yes man当然可以:)但我不知道该怎么办?请您进一步解释我应该做什么?DDL—数据定义语言—表示所有相关表的CREATETABLE语句。DML—数据操作语言—表示示例数据的insert语句。如果您可以发布它们(并确保您发布的数据确实再现了问题),那么我们可能需要处理一些问题。