3
我有一组动态查询,它们以varchars的形式返回XML,见下文。SQL Server 2008:在动态XML查询中返回空值
例子查询:
set @sqlstr = 'Select ''<?xml version="1.0" encoding="windows-1252" ?>'' + ''<File_Name><Location>'' + (Select a,b,c from table for xml path(''Row'')) + </Location></File_name>'''
exec(@sqlstr)
此作品一种享受,直到select a,b,c ...
查询为空。然后,我没有收到外部因素如你所期望的一样:
<?xml version="1.0" encoding="windows-1252"><File_Name><Location><Row></Row></Location></File_name>
所有我收到是NULL
后有点谷歌搜索,我发现这个问题是NULL结果的拼接是一个完整的NULL结果。然而,我找不到一个解决方案给我我期望的结果。
我试过(不要说我已经试过正确)
IsNull(Exec(@sqlstring),'*blank elements*')
xsnil (doesn't seem to work in dynamic queries)
@result = exec(@sqlstring) then isnull and select
任何人都有一个更好的解决办法? (最好是小,由于多个这样的查询)
这是我的错误,我做了A,B,C为例如其实际*作为其在某些情况下20领域。你的答案将起作用,如果没有更短的方法,那么必须列出每一个,然后我会接受作为答案,谢谢 –
如果有一个更短的方式,让我知道,所以我可以学习@LRiley –
我会做'将张贴任何答案,我找到 –