Sql 处理XML中的空值
结果中不需要空值。 我希望结果被这样的东西包装起来Sql 处理XML中的空值,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,结果中不需要空值。 我希望结果被这样的东西包装起来 即使col1为空或不为空 在此示例中,表不包含col2=63895746的任何行,因此我将得到一个空结果集,因此type指令将使其为NULL并返回它请尝试: SELECT Col1 FROM Table WHERE Col2 = 63895746 ORDER BY Col FOR XML PATH,TYPE 尝试: 您需要使用元素xsini 如果失败,则可以嵌套查询: 选择ISNULLd
SELECT Col1
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH,TYPE
尝试:
您需要使用元素xsini 如果失败,则可以嵌套查询: 选择ISNULLdata.Col1,“
不在我的机器上,所以测试起来有点困难。您需要使用ELEMENTS XSINIL 如果失败,则可以嵌套查询: 选择ISNULLdata.Col1,“
不在我的机器上,因此测试起来有点困难。如果Col1是字符串,则可以使用以下方法实现此目的:
SELECT
ISNULL(Col1, '< Cols >< /Cols>') AS Col1
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH,TYPE
如果有空值,则会得到一个空标记。如果Col1是字符串,则可以使用以下方法实现此目的:
SELECT
ISNULL(Col1, '< Cols >< /Cols>') AS Col1
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH,TYPE
SELECT COALESCE(Col1,'')
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH,TYPE
如果你有一个空值,它会给你一个空标签
SELECT COALESCE(Col1,'')
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH,TYPE
SELECT T.X
FROM
(
SELECT Col1
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH, TYPE
) AS T
FOR XML PATH('Cols'), TYPE
怎么样
SELECT T.X
FROM
(
SELECT Col1
FROM Table
WHERE Col2 = 63895746
ORDER BY Col
FOR XML PATH, TYPE
) AS T
FOR XML PATH('Cols'), TYPE
我认为,按照微软的说法,这是一种使用
;with mytmp (f1) as (
SELECT Col1
FROM Table
WHERE Col1 = 123456
ORDER BY Col1
FOR XML PATH('col'),root('cols'),TYPE
)
select isnull(f1, '<cols></cols>')
from mytmp;
作为选项,后面为xml路径
我认为,按照微软的说法,这是一种使用
;with mytmp (f1) as (
SELECT Col1
FROM Table
WHERE Col1 = 123456
ORDER BY Col1
FOR XML PATH('col'),root('cols'),TYPE
)
select isnull(f1, '<cols></cols>')
from mytmp;
作为选项,后面为xml路径
你的预期产量是多少?如果COL1为NULL,那么result=您期望的输出是什么?如果COL1为NULL,那么result=您也可以尝试STUFF命令:@ashleyjohn-xsini听起来正是您想要的。它至少需要一个非空列。。。原因很简单,如果没有任何内容,则不会返回任何行。如果您想返回所有行,甚至是您感兴趣的列恰好为空的行,最简单的方法可能是在查询中选择第二列。您还可以尝试STUFF命令:@Ashley John-xsini听起来正是您想要的。它至少需要一个非空列。。。原因很简单,如果没有任何内容,则不会返回任何行。如果您想返回所有行,甚至是您感兴趣的列恰好为空的行,也许最简单的方法是在查询中选择第二列。是的,在我的笔记本电脑上的SQL 2012 LocalDB上运行良好,我在发布之前对其进行了测试。是的,在我的笔记本电脑上的SQL 2012 LocalDB上运行良好,我在发布之前测试了它。对这个答案稍加调整,我得到了我想要的。对这个答案稍加调整,我得到了我想要的。