用 SQL 解码(请帮助理解此代码)


decode(trim(emp.gsr_country_code), 
'484',
lpad(trim(emp.gsr_center6), 5, '0'),
decode(length(trim(emp.gsr_center6)),
7,
substr(trim(emp.gsr_center6), 3, 5),
trim(emp.gsr_center6)))

如果您重新格式化它,以便实际看到与内容进行比较的内容,那么它看起来像这样(不幸的是,您现在必须向右滚动):

decode(trim(emp.gsr_country_code), '484', lpad(trim(emp.gsr_center6), 5, '0'),
decode(length(trim(emp.gsr_center6)), 7, substr(trim(emp.gsr_center6), 3, 5),
             trim(emp.gsr_center6)
)
)

那么,它有什么作用呢?

  • trimemp.gsr_country_code中删除任何空格并将其与'484'
    • 如果修剪gsr_country_code等于'484',则函数(decode,对吗?)返回修剪后的emp.gsr_center6,该左填充,长度为 5 个字符的零
    • 如果它不等于'484',则转到另一个decode(在 #2 行)
  • 它检查修剪emp.gsr_center6的长度是否等于7
    • 如果是这样,它从修剪后的emp.gsr_center6返回5个字符,从字符 #3 开始
    • 如果没有,它将返回修剪后的emp.gsr_center6

就是这样。

相关内容

最新更新