You need to enable JavaScript to run this app. Oracle SQL拆分尺寸列(如12'x16')计算平方英尺的代码纠错请求
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL拆分尺寸列(如12'x16')计算平方英尺的代码纠错请求

原SQL核心问题定位
  • 字段名拼写错误:宽度值提取逻辑中误将size_name写为siz_ename,导致函数无法正确取值
  • 分隔符匹配错误:实际尺寸的长宽分隔符为x(示例格式12'x16'),原代码错误匹配乘号*作为分隔位置,取值逻辑完全偏离实际数据格式
  • 分组逻辑冗余:将派生计算字段square_feet_Area纳入GROUP BY子句,无业务意义且增加查询开销
  • 异常容错缺失:遇到格式不符合「数值'x数值'」的脏数据时,截取的空值会直接触发TO_NUMBER类型转换报错
修正后可直接运行的SQL
SELECT
  -- 提取长度:第一个单引号前的数值
  TO_NUMBER(SUBSTR(size_name, 1, INSTR(size_name, '''') - 1)) *
  -- 提取宽度:x分隔符后、第二个单引号前的数值
  TO_NUMBER(SUBSTR(
    size_name,
    INSTR(size_name, 'x') + 1,
    INSTR(size_name, '''', 1, 2) - INSTR(size_name, 'x') - 1
  )) AS square_feet_Area,
  size_name,
  asin
FROM 
  你的业务表名 -- 替换为实际存储尺寸数据的表名
WHERE asin IN (
  'B01DZZ3TZ4',
  'B01MS3QHR9',
  'B01N3095SX',
  'B084KGNGRB'
)
GROUP BY
  asin,
  size_name

适配优化提示:

  • 若数据中分隔符存在大小写差异(如大写X),可将分隔符匹配逻辑调整为INSTR(UPPER(size_name), 'X'),自动兼容两种格式
  • 若需规避脏数据导致的转换报错,可将截取逻辑套入NULLIF,将空截取结果转为NULL而非抛出错误:例如TO_NUMBER(NULLIF(SUBSTR(...), ''))

内容的提问来源于stack exchange,提问作者Zabzee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 23:15:03