Microsoft
Software
Hardware
Network
Question : Join between LONGVARBINARY and CHAR
Hi,
I am attempting a join between two tables:
JOIN table2.dbo.USERS
ON table1.dbo.CMS_USERDATA.DA
TA_VALUE = table2.dbo.USERS.UserGUID
The problem is that the DATA_VALUE column is of type LONGVARBINARY and UserGUID is of type CHAR. This results in the following error:
"Error code 306, SQL state S0001: The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator."
I attempted to use a LIKE operator instead of the equals operator but I just get the following error:
"Error code 403, SQL state S0002: Invalid operator for data type. Operator equals LIKE, type equals uniqueidentifier."
The contents of DATA_VALUE will always be a string of characters and in theory should match the characters in UserGUID. If DATA_VALUE could be converted to CHAR then it should be able to work but I have no idea how to do that for the following SQL query:
SELECT *
FROM table1.dbo.CMS_USERS
INNER JOIN table1.dbo.CMS_USERDATA
ON table1.dbo.CMS_USERS.USER_
ID = table1.dbo.CMS_USERDATA.US
ER_ID
JOIN table2.dbo.USERS
ON table1.dbo.CMS_USERDATA.DA
TA_VALUE = table2.dbo.USERS.UserGUID
WHERE table1.dbo.CMS_USERDATA.DA
TA_KEY = 'UserGUID'
Any idea on how I can achieve this JOIN?
Thanks
Answer : Join between LONGVARBINARY and CHAR
change
ON table1.dbo.CMS_USERDATA.DA
TA_VALUE = table2.dbo.USERS.UserGUID
to
ON convert(nvarchar(4000), table1.dbo.CMS_USERDATA.DA
TA_VALUE) = convert(nvarchar(4000), table2.dbo.USERS.UserGUID)
Just expanding on what conagraman said.
Random Solutions
Block Logme internally
SBS 2008 Small Business Server Internet Activity
Cannot Create a Fax Account in Windows 7
Using SpamAssassin's Command-line Spam Score Test
How to add scriptaculous to Wordpress Site?
Auto Send Excel as Email Attachment
Remove exchange connection in Outlook
how to install and configure new GPFS cluster in AIX LPAR Workload environement?
Screen resolution changed - Fedora 13
Default Printer Changes using Terminal Server