len()-6是正常的,外面套了个left就报错了

image.png

SQL 百煮味香 发布于 2022-8-30 14:38
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-8-30 14:40

有可能  LEN()-6后为负 再left就报错

  • 百煮味香 百煮味香(提问者) 请问有什么解决方案吗
    2022-08-30 14:41 
  • Z4u3z1 Z4u3z1 回复 百煮味香(提问者) CASE WHEN LEN(XXX)<=6 THEN XXX ELSE LEFT(XXX,LEN(XXX)-6) END
    2022-08-30 14:43 
  • 百煮味香 百煮味香(提问者) ( CASE WHEN LEFT (st03.FNUMBER, 2) != \'01\' THEN LEFT ( st03.FNUMBER, len(st03.FNUMBER) - 6 ) /*需要与底层表配合*/ WHEN st03.FNUMBER = \'01.10012\' THEN \'35.0592\' /*厦门市*/ END ) AS 客户市编号
    2022-08-30 14:45 
  • 百煮味香 百煮味香(提问者) 这是原本的语句 要改这句
    2022-08-30 14:45 
  • Z4u3z1 Z4u3z1 回复 百煮味香(提问者) THEN 后面前一层 (case when then else end)
    2022-08-30 14:53 
  • 1关注人数
  • 200浏览人数
  • 最后回答于:2022-8-30 14:40
    请选择关闭问题的原因
    确定 取消
    返回顶部