我的一个表中有一个字段,可能包含UNIQUEIDENTIFIER或表示名称的字符串。我想使用此字段连接到另一个表,如果值是UNIQUEIDENTIFIER,它应该与第二个表的KEY字段连接,但如果值是字符串,它应该与第二个表的NAME字段连接。 / p>
以下是我的查询示例:
SELECT * FROM Table1 AS T1
LEFT JOIN Table2 AS T2
ON
T2.NAME = T1.NAME
OR T2.KEY = T1.NAME
此查询不起作用,因为它在尝试将字符串转换为UNIQUEIDENTIFER时会引发错误。不幸的是,我没有另外一个字段可以识别哪些记录包含UNIQUEIDENTIFIERs vs字符串,以便简单地执行2个查询和UNION它们。
有谁知道处理这种情况的最佳方法?
答案 0 :(得分:0)
您可以尝试将UID转换为字符串类型并匹配吗?
SELECT *
FROM
Table1 AS T1
LEFT JOIN
Table2 AS T2ON
CAST(T2.KEY AS NVARCHAR(50)) = T1.NAME OR
T2.NAME = T1.NAME