作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚如何捕获错误,并找出try_cast之一何时返回null。我在存储过程中的查询如下所示:
SELECT
try_cast(ORI.body AS xml).value('(/BODY/@formid)[1]', 'INT') AS 'Form ID'
, try_cast(ORI.body AS xml).value('(/BODY/@form_answers)[1]', 'NVARCHAR(MAX)') AS 'Body'
, ORN.info_id
, getdate() as create_date
FROM
ORG_NOTEPAD ORN
INNER JOIN
ORG_INFO ORI ON ORN.info_id = ORI.id
WHERE
COALESCE(ORI.template_id,0)<>0
AND
COALESCE(ORN.case_id,0)<> 0
AND
ORN.type_id <> 4
该查询返回大约800行。在此有3个单独的尝试广播。
最佳答案
create table #ORG_INFO
(
id int identity(1,1),
body nvarchar(max)
);
insert into #ORG_INFO(body)
values
(N'<BODY formid="1234"/>'),
(NULL), --just null
(N'<BODY>'), --invalid xml
(N'<BODY formid="abcd"/>'), --formid not a number
(N'<BODY anotherattrib="1234"/>'); --missing @formid
select
case
when body is null then cast('body is null' as varchar(100))
when try_cast(body as xml) is null then 'invalid xml'
when try_cast(body as xml).exist('/BODY/@formid') = 0 then 'missing formid'
when try_cast(body as xml).exist('xs:integer((/BODY/@formid)[1])') = 0 then 'non-numeric formid'
else 'ok'
end as ctrlmsg,
try_cast(body as xml).value('xs:integer((/BODY/@formid)[1])', 'int') as formid,
*
from #ORG_INFO;
drop table #ORG_INFO;
关于sql-server - 如何在长结果查询中处理try_cast错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63677699/
我对 SQL Server Management Studio 的行为有一个疑问。我已连接到 SQL Server 数据库 - 版本: Microsoft SQL Server 2014 (SP1-C
下面的查询... SELECT YEAR(TRY_CAST(m.MetaValue AS DATE)) FROM MetaData m ...导致此错误: String or binary data
我是一名优秀的程序员,十分优秀!