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不兼容
我怎样才能防止这种情况发生?
不要比较UUID
a float
.你为什么这样做呢?
您可以参考这个方便的图表来了解允许的转换.如果无法将两种数据类型相互转换,则无法直接比较它们.
假设您可以将两者都转换为字符串类型,varchar
但因为不可能UUID
匹配任何可能float
没有任何意义的匹配.
编辑:
更具体地说,它看起来像是Userid
一个UUID
并且该STR()
函数专门用于将float
数据转换为字符串数据类型.
为什么要尝试转换au.UserID呢?如果您有UUID,请直接将其与其他UUID进行比较.
归档时间: |
|
查看次数: |
14499 次 |
最近记录: |