Join 2 Tables on a Column with Differing Collations in SQL

  1. SELECT 'SQL_Latin1_General_CP1_CI_AS' AS 'Collation',  
  2.     COLLATIONPROPERTY('SQL_Latin1_General_CP1_CI_AS''CodePage'AS 'CodePage',  
  3.     COLLATIONPROPERTY('SQL_Latin1_General_CP1_CI_AS''LCID'AS 'LCID',  
  4.     COLLATIONPROPERTY('SQL_Latin1_General_CP1_CI_AS''ComparisonStyle'AS 'ComparisonStyle',  
  5.     COLLATIONPROPERTY('SQL_Latin1_General_CP1_CI_AS''Version'AS 'Version'  
  6. UNION ALL  
  7. SELECT 'Latin1_General_CI_AS' AS 'Collation',  
  8.     COLLATIONPROPERTY('Latin1_General_CI_AS''CodePage'AS 'CodePage',  
  9.     COLLATIONPROPERTY('Latin1_General_CI_AS''LCID'AS 'LCID',  
  10.     COLLATIONPROPERTY('Latin1_General_CI_AS''ComparisonStyle'AS 'ComparisonStyle',  
  11.     COLLATIONPROPERTY('Latin1_General_CI_AS''Version'AS 'Version'  
  12. GO  
  13.   
  14. --Clean up previous query  
  15. IF EXISTS(SELECT 1 FROM sys.tables WHERE Name = 'MyTable1')  
  16.     DROP TABLE MyTable1  
  17.    
  18. IF EXISTS(SELECT 1 FROM sys.tables WHERE Name = 'MyTable2')  
  19.     DROP TABLE MyTable2  
  20.   
  21. --Create a table using collation Latin1_General_CI_AS and add some data to it  
  22. CREATE TABLE MyTable1  
  23. (  
  24.     ID INT IDENTITY(1, 1),  
  25.     Comments VARCHAR(100) COLLATE Latin1_General_CI_AS  
  26. )  
  27. INSERT INTO MyTable1 (Comments) VALUES ('Chiapas')  
  28. INSERT INTO MyTable1 (Comments) VALUES ('Colima')  
  29.    
  30. --Create a second table using collation SQL_Latin1_General_CP1_CI_AS and add some data to it  
  31. CREATE TABLE MyTable2  
  32. (  
  33.     ID INT IDENTITY(1, 1),  
  34.     Comments VARCHAR(100) COLLATE SQL_Latin1_General_CP1_CI_AS  
  35. )  
  36. INSERT INTO MyTable2 (Comments) VALUES ('Chiapas')  
  37. INSERT INTO MyTable2 (Comments) VALUES ('Colima')  
  38.     
  39. --Join both tables on a column with differing collations  
  40. SELECT * FROM MyTable1 M1  
  41. INNER JOIN MyTable2 M2 ON M1.Comments collate SQL_Latin1_General_CP1_CI_AS = M2.Comments collate SQL_Latin1_General_CP1_CI_AS  
  42.    
  43. GO