找出 SQL 中两个字符之间的差异

Find difference between two characters in SQL

我有一个有 2 列的 table

column1   column2
abcd      abdc
abcr      dfgh
cvge      cbge

我想知道 sql 查询以获得第三列,结果以这种方式显示两个字段之间的差异

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

如果字段总是四个字符,您可以使用 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() 的功能,但在某些数据库中,该功能可能具有不同的名称。