与SELECT with CASE语句中的数字进行比较时出现XML异常
本文关键字:比较 异常 XML 数字 with SELECT CASE 语句 | 更新日期: 2023-09-27 18:20:59
我在SELECT
函数中使用了CASE
语句,如下所示:
SELECT CASE WHEN a < 0 THEN 0
ESLE a
END AS "Number 1"
FROM <TABLE_NAME>
此函数位于C#网站的XML文件中。
当我打开那个网站时,它会显示一个XMLException
:
"0"字符(十六进制值0x30)不能以名称开头。线位置
我搜索并修复为:
SELECT CASE WHEN XMLExists('[a < 0]') THEN 0
ESLE a
END AS "Number 1"
FROM <TABLE_NAME>
但仍然得到了例外。我该怎么解决这个问题?谢谢你的帮助!
如果您的XML文件实际上包含WHEN a < 0
,那么我不会感到惊讶,因为它不是有效的XML。正如您尝试的修复所表明的那样,这与SQL方面的问题无关。您应该以<
的身份逃离<
SELECT CASE WHEN a < 0 THEN 0
在XML文件中,这就是表示SELECT CASE WHEN a < 0 THEN 0
的文本的方式。
更好的是,根本不用手工编辑XML。如果该文件是用XML API创建的,它会自动为您进行此转义。