Flo*_*Flo 2 sql sql-server-2008
我有以下SQL语句:
select pc.*,au.UserName from ProspectsInCampaigns pc
inner join prospects p on p.id=pc.prospectid
inner join aspnet_Users au on STR(au.UserId)=pc.updatedby
WHERE p.id=1225982
Run Code Online (Sandbox Code Playgroud)
问题是,ProspectsInCampaigns中的updatedby字段包含一个空字符串或一个确实是UUID的字符串.在上面的例子中我得到错误:
操作数类型冲突:uniqueidentifier与float不兼容
我怎样才能防止这种情况发生?
不要比较UUIDa float.你为什么这样做呢?
您可以参考这个方便的图表来了解允许的转换.如果无法将两种数据类型相互转换,则无法直接比较它们.
假设您可以将两者都转换为字符串类型,varchar但因为不可能UUID匹配任何可能float没有任何意义的匹配.
编辑:
更具体地说,它看起来像是Userid一个UUID并且该STR()函数专门用于将float数据转换为字符串数据类型.
为什么要尝试转换au.UserID呢?如果您有UUID,请直接将其与其他UUID进行比较.