Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language:
Expertise: Beginner
Aug 14, 2000

Join on Key Fields of Differing Data Types

Question:
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?

Answer:
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.

 

 

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