0

我有一堆从文本文件中导入的数据,需要转换为其本机 GUID。它看起来像这样:

declare @um table ( badtext varchar(36) )
insert into @um values ( '9C7FF2D7-800B-4954-A73A-0BA58B1497AB' )
insert into @um values (  'boom' )
select cast (badtext as uniqueidentifier ) from @um

坏数据已经存在,如果转换失败,我需要将其转换为 '00000000-0000-0000-0000-000000000000'。我的偏好是与更大的 Select 语句的其余部分内联。玩 IsNull 和 Cast 并没有让我到任何地方......

我怎样才能将坏值内联到“好”的东西?

谢谢。

编辑

我想我发现这会奏效。所有评论表示赞赏。

declare @um table ( badtext varchar(36) )
insert into @um values ( '9C7FF2D7-800B-4954-A73A-0BA58B1497AB' )
insert into @um values (  'boom' )
select Cast( IsNull ( try_cast( badtext as UniqueIdentifier ) ,'00000000-0000-0000-0000-000000000000' ) as uniqueidentifier ) as good from @um
4

0 回答 0