SQL Server:在选择中显示NULL的默认值
我有一个存储过程,它根据一些选择创建XML字符串 如果其中一个select返回NULL,是否有一种方法可以显示默认值? 基本上,我只想在XML中保持相同的结构,与值是否为NULL无关。当前,XML仅显示带有值的记录 存储过程示例:SQL Server:在选择中显示NULL的默认值,sql,sql-server,select,null,default-value,Sql,Sql Server,Select,Null,Default Value,我有一个存储过程,它根据一些选择创建XML字符串 如果其中一个select返回NULL,是否有一种方法可以显示默认值? 基本上,我只想在XML中保持相同的结构,与值是否为NULL无关。当前,XML仅显示带有值的记录 存储过程示例: 非常感谢你在这方面的帮助,蒂姆 试试这样的东西 SELECT coalesce(A.ranking,0) as ranking ( SELECT coalesce(B.groupName,''
非常感谢你在这方面的帮助,蒂姆 试试这样的东西
SELECT coalesce(A.ranking,0) as ranking
(
SELECT coalesce(B.groupName,'') as groupName,
(
SELECT C.policy,
C.groupCount
FROM @temp C
WHERE C.ranking = A.ranking
AND C.groupName = B.groupName
ORDER BY C.groupCount desc, C.policy
FOR XML PATH(''), ELEMENTS, TYPE
) AS groupName
FROM @temp B
WHERE B.ranking = A.ranking
GROUP BY B.groupName
ORDER BY B.groupName
FOR XML PATH(''), ELEMENTS, TYPE
)
FROM @temp A
GROUP BY A.ranking
ORDER BY A.ranking
FOR XML PATH('policyRanking'), ELEMENTS, TYPE, ROOT('ranks')
试试这样的
SELECT coalesce(A.ranking,0) as ranking
(
SELECT coalesce(B.groupName,'') as groupName,
(
SELECT C.policy,
C.groupCount
FROM @temp C
WHERE C.ranking = A.ranking
AND C.groupName = B.groupName
ORDER BY C.groupCount desc, C.policy
FOR XML PATH(''), ELEMENTS, TYPE
) AS groupName
FROM @temp B
WHERE B.ranking = A.ranking
GROUP BY B.groupName
ORDER BY B.groupName
FOR XML PATH(''), ELEMENTS, TYPE
)
FROM @temp A
GROUP BY A.ranking
ORDER BY A.ranking
FOR XML PATH('policyRanking'), ELEMENTS, TYPE, ROOT('ranks')
使用函数,将每个可为空的列替换为表达式see table definition:
ISNULL ( column , default_value )
使用函数,将每个可为空的列替换为表达式see table definition:
ISNULL ( column , default_value )
谢谢您能解释一下coalesce在这里做什么吗?如果列为NullThank,则coalesce将设置作为第二个参数输入的值!您能解释一下coalesce在这里做什么吗?如果列为NULL,则coalesce将设置作为第二个参数输入的值