2016-05-05 4 views
1

У меня есть две таблицы: «table1» и «table2», и в этих таблицах у меня есть сотни имен. Теперь я хочу выбрать только эти имена, где первые 4 символа имеют одинаковое значение.SQL: как добавить условие, где некоторые символы имеют одинаковое значение

До сих пор это не так сложно. Что-то вроде этого:

select * from table1 
join table2 on LEFT(table1.name,4)=LEFT(table2.name,4) 

Но я изо всех сил, чтобы добавить одно условие, что некоторые символы имеют одинаковое значение, например: я = у, v = ш, с = к и наоборот.

Если table1 имеет название «Citty» и table2 имеет название «Китти», я хочу, чтобы это имя также выходит в результатах

+0

Это не вопрос программирования. Это вопрос бизнес-логики. Выясните, что вы хотите, чтобы ваше бизнес-правило было, и кодирование будет легким. –

+1

Если эти эквиваленты символов универсальны в вашем случае использования, вы можете просто использовать функцию Replace для имени в таблице table1 или table2 при сравнении. – nscheaffer

+1

Пожалуйста, объясните * почему * вам нужно это сделать. Почему 4 персонажа? Это произвольное число, которое вы решили? Вас интересует только английский? –

ответ

0

Вы должны смотреть на SOUNDEX() and DIFFERENCE() функции SQL Server. Они доступны для полнотекстового поиска.

В качестве альтернативы вы можете создать функцию clr и вызвать ее из sql.

Смежные вопросы