SQL Server error: result of 'text()' expression is statically 'empty'

SQL Server error: result of 'text()' expression is statically 'empty'

如果有人能提供帮助,那就太好了,因为我已经花了几个小时,但不知道如何修复它...

我有一个现有代码(据我所知,它尝试从 dbo table 字段中读取 XML):

with usluga_list as (
    --EvnUslugaList
)
select top 1
    cast(doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()') as nvarchar(max)) as value
from 
    usluga_list u
    cross apply (
        select top 1 *
            from v_EvnXml with(nolock)
        where u.EvnUsluga_id = Evn_id
            order by EvnXml_insDT desc
    ) doc
order by
    EvnXml_insDT --SqlOrderType_SysNick

当这段代码运行时,我得到这个错误:

Error number: 42000/2377 [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]XQuery [doc.EvnXml_Data.query()]: Result of 'text()' expression is statically 'empty'

错误给出了片段:

doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()')

但是我不知道如何防止它或检查 null 并输出另一个值。

需要 SQL 服务器专家!

尝试替换这一行:

cast(doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()') as nvarchar(max)) as value

由此:

doc.EvnXml_Data.value('(data/@XmlDataSection_SysNick)[1]', 'nvarchar(max)') as value