2013-07-03 41 views
2

小寫轉換我有2頁不同的表下面列 -上在SQL Server

DimTeamProject.ProjectNodeGUID    DimIteration.ProjectGUID 
------------------------------    ------------------------ 
FAE8B08E-286E-487D-B1C1-011853028CDB  fae8b08e-286e-487d-b1c1-011853028cdb 

我試圖同時匹配的情況下連接操作。它給了我一個錯誤,如

轉換從字符串轉換爲uniqueidentifier時失敗。

我試圖查詢是 -

select 
    p.ProjectNodeName, i.IterationName 
from 
    DimTeamProject p, DimIteration i 
where 
    (p.ProjectNodeGUID) = UPPER(i.ProjectGUID) 

我嘗試了「字符」和「演員」的功能太多,但沒有成功。請幫忙。

DimIteration.ProjectGUID是 「nvarchar的」 & DimTeamProject.ProjectNodeGUID是一個 「uniqueidentifer」

+3

這兩列的數據類型是什麼?我假設一個是varchar,另一個是唯一標識符? – LittleBobbyTables

+4

[踢壞的習慣:使用舊式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - 舊式*逗號分隔的表*樣式列表已停止使用ANSI - ** 92 ** SQL標準(超過** 20年前**) –

回答

4

只投合適的側作爲uniqueidentifier

select p.ProjectNodeName, i.IterationName 
from DimTeamProject p 
inner join DimIteration i on p.ProjectNodeGUID = 
    CAST(i.ProjectGUID as uniqueidentifier) 

觀看演示用SQL Fiddle

+0

謝謝。下面爲我​​工作 - 選擇p.ProjectNodeName,從DimTeamProject的i.IterationName p 內部連接DimIteration我在p.ProjectNodeGUID = CAST(i.ProjectGUID as uniqueidentifier) – 0nir