Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Expertise: Beginner
Aug 14, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Join on Key Fields of Differing Data Types

I am trying to create some reports with a third party reporting tool accessing an Informix 7 database, which was not written by us. I want to join two tables, but the key field is a char in one table and numeric in the other. This would be a valid join otherwise. How can I write a SQL statement to join these two tables?

It can be done, but performance may be a problem. The trick is to force the numeric field into being considered a character field, much like a CAST statement does in C. To do this, concatenate a null to the numeric, and the result will be a character:

SELECT * from table1, table2
WHERE  numericfield || "" = characterfield;
Using an expression in a WHERE clause is not efficient, so the performance may not be acceptable. If it is not satisfactory, I would add a character field to the table with the numeric join field, and populate the new field with the character version of the numeric field. Then do the join on the two character fields. If you can afford the space taken up by the extra field, your performance will be much better.
DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date