#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()
, но в некоторых базах данных функция может иметь другое имя.