2014-08-29 49 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 
相關問題