2014-08-29 54 views
0

我的表中有一个可能包含UNIQUEIDENTIFIER或表示名称的字符串的字段。我想用这个字段加入到另一个表中,如果值是一个UNIQUEIDENTIFIER,它应该与第二个表的KEY字段联接,但是如果该值是一个字符串,它应该与第二个表的NAME字段联接。T-SQL - 加入可能包含UNIQUEIDENTIFIER或STRING的NVARCHAR字段

这里是我的查询的示例:

SELECT * FROM Table1 AS T1 
LEFT JOIN Table2 AS T2 
    ON 
     T2.NAME = T1.NAME 
     OR T2.KEY = T1.NAME 

此查询不工作,因为它试图将一个字符串转换UNIQUEIDENTIFER时抛出一个错误。不幸的是,我没有另外一个字段可以确定哪些记录包含UNIQUEIDENTIFIER与字符串,以便简单地执行2个查询和UNION它们。

有谁知道处理这种情况的最佳方法?

回答

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 
相关问题