我正在尝试连接几个表-问题是其中一个表中的guid没有破折号。
到目前为止,我在研究中发现了一种转换单个guid的方法:
DECLARE @uuid VARCHAR(50)
SET @uuid = 'ecd5bc3f5cf741acabbbf0fb17634970'
SELECT CAST(
SUBSTRING(@uuid, 1, 8) + '-' + SUBSTRING(@uuid, 9, 4) + '-' + SUBSTRING(@uuid, 13, 4) + '-' +
SUBSTRING(@uuid, 17, 4) + '-' + SUBSTRING(@uuid, 21, 12)
AS UNIQUEIDENTIFIER);
但是如何使用它根据结果联接表呢?还是有完全不同的方法?
1条答案
按热度按时间8nuwlpux1#
连接的一种方法是转换为字符串:
我应该注意到,这使得优化很困难。您可能希望修改第一个表,使其具有正确类型的uuid列:
可以持久化该列并在其上构建索引。