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
Duplicate Databes
Windows Mobile ActiveSync Calendar Items do not sync
Printing problems in Outlook - incomplete printout
Memory Advanced ECC Mode with Mixed DIMM Capacities on Dell R710 PowerEdge
VBScript: Pulling lastLogonTimestamp
Getting own send e-mail in Blackberry
How to design my DNS structure
Opera 10.x how to find each tab's memory consumption
WebSphere Federated Repositories
What is the proper DNS settings for ...