SQL Server:在case语句中将UniqueIdentifier转换为字符串

|| 我们有一个日志表,该表的消息列有时具有异常堆栈跟踪。我有一些确定邮件是否包含此条件的条件。我们不想向客户显示这些消息,而是显示类似以下消息:   发生内部错误。联系我们   带有参考代码   xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 其中xxx etc是表中的guid列。我正在写这样的存储过程:
declare @exceptionCriteria nvarchar(50)
select @exceptionCriteria = \'%<enter criteria etc>%\'

select LogDate,
       case
       when Message like @exceptionCriteria
       then \'Internal Error Occured. Reference Code: \' + str(RequestID)
       else Message
       end
  from UpdateQueue
RequestID
是SQL Server中的Guid数据类型,此处不转换为字符串。我已经看到了一些有关如何将Guid转换为字符串的代码,但是它是多行的,我认为它在case语句中不起作用。有任何想法吗?     
已邀请:
        我想我找到了答案:
convert(nvarchar(50), RequestID)
这是我找到此信息的链接: http://msdn.microsoft.com/en-us/library/ms187928.aspx     
        可以在此处使用转换功能,但是36个字符足以容纳唯一的标识符值:
convert(nvarchar(36), requestID) as requestID
    
        我认为,
uniqueidentifier
/ GUID既不是
varchar
也不是
nvarchar
,而是is7ѭ。因此,我使用:
CAST(xyz AS char(36))
    
        代替
Str(RequestID)
,尝试
convert(varchar(38), RequestID)
    

要回复问题请先登录注册