我现在有一个简单的查询语句,而这个select结果集要拿出去与别的表做联合查询
遇到一个问题:外面的ModuleId字段都是UNIQUEIDENTIFIER类型,而刚好这个log表ModuleId字段都是nvarchar(36)、(且字段内容都是0124EBFE-A6E3-465B-8057-4AF35D10F30B),需要转换为UNIQUEIDENTIFIER
SELECT UserId, CAST(ModuleId AS UNIQUEIDENTIFIER) AS ModuleId
FROM dbo.OS_LOG
WHERE (Description = '访问系统') AND (ModuleId IS NOT NULL)
还是有警告:
Type conversion in expression (CONVERT(uniqueidentifier,[OperationSystem].[dbo].[OS_LOG].[ModuleId],0)) may affect "CardinalityEstimate" in query plan choice
警告你管他作甚。
大叔永远都是这么幽默
这跟索引的统计信息有关,强制转换index key的data type会导致index statistics 失效