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

问题描述

我有一个包含2列的表格

column1   column2
abcd      abdc
abcr      dfgh
cvge      cbge

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

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

解决方法

如果字段始终是四个字符,则可以使用case表达式。就像这样:

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

请注意,所有数据库都支持substr()的功能,但是在某些数据库中,该功能可能具有不同的名称。