I am trying to write a query to return results where “Column B” is equal to or contains “Column A”.
I need both, because some fields in Column B are an exact match for field in Column A, and sometimes the value in Column B is the value from Column A with additional characters added on the end.
Example | Column A | Column B |
---|---|---|
1 | 1234 | 12345abc |
2 | abcde | abcde |
I have tried:
TableName.[Column B] like TableName.[Column A] -- this only returns exact matches TableName.[Column B] like 'TableName.[Column A]%' -- this returns nothing TableName.[Column B] = 'TableName.[Column A]%' -- this returns nothing
Any assistance would be incredible, thanks!
Advertisement
Answer
@Rafalon is correct. Use:
TableName.[Column B] like '%' + TableName.[Column A] + '%'
When you add the wildcards, you have to make them a string but the TableName.[Column A]
cannot be a string. The above code will include all instances of B that contains A. When you ask for an exact match, the same code will do that because when they match exactly, of course B will contain A.