Найти разницу между двумя символами в SQL

#sql #string #difference #word #letter

#sql #строка #разница #word #буква

Вопрос:

У меня есть таблица с 2 столбцами

 column1   column2
abcd      abdc
abcr      dfgh
cvge      cbge
  

Я хочу знать SQL-запрос, чтобы получить третий столбец с результатами, показывающими разницу между 2 полями таким образом

 column1   column2    calculated field
abcd      abdc       2
abcr      dfgh       0
cvge      cbge       3
  

Комментарии:

1. SQL не является подходящим инструментом для этого типа запросов, хотя это возможно. Вам нужно указать, какую базу данных вы используете.

Ответ №1:

Если поля всегда состоят из четырех символов, вы можете использовать case выражение. Это что-то вроде этого:

 select ( (case when substr(field1, 1, 1) = substr(field2, 1, 1) then 1 else 0 end)  
         (case when substr(field1, 2, 1) = substr(field2, 2, 1) then 1 else 0 end)  
         (case when substr(field1, 3, 1) = substr(field2, 3, 1) then 1 else 0 end)  
         (case when substr(field1, 4, 1) = substr(field2, 4, 1) then 1 else 0 end)
       ) as calculated
  

Обратите внимание, что все базы данных поддерживают функциональность substr() , но в некоторых базах данных функция может иметь другое имя.