问答 查看内容
返回列表

case when month 错误

17 2
发表于 昨天 14:14 | 查看全部 阅读模式
本帖最后由 sun 于 2025-1-22 14:33 编辑

SELECT
    input1.`二级分类`,
    input1.`店仓名称`,
    input1.`零售金额`,
    input1.`数量`,
    input1.`零售价`,
    CASE
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 1 THEN '1月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 2 THEN '2月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 3 THEN '3月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 4 THEN '4月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 5 THEN '5月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 6 THEN '6月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 7 THEN '7月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 8 THEN '8月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 9 THEN '9月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 10 THEN '10月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 11 THEN '11月'
        WHEN MONTH(input1.`to_date(CAST(单据日期 AS STRING), yyyyMMdd)`) = 12 THEN '12月'
        ELSE '未知月份'
    END AS 月份
FROM input1;

报错提示语法问题

评论2

观小新Lv.1 发表于 昨天 14:54 | 查看全部
1、函数嵌套:to_date(CAST(单据日期 AS STRING), 'yyyyMMdd') 应该首先被计算出来,然后再传递给 MONTH() 函数。
2、引号使用:在 to_date 函数中,日期格式 'yyyyMMdd' 应该用单引号包围。
3、字段引用:字段名如果包含特殊字符或空格,应该使用反引号(`)而非单引号或双引号。
sun楼主Lv.1 发表于 昨天 15:20 | 查看全部
日期格式'yyyyMMdd' 已经被单引号应用了
截图202501221518114125.png
截图202501221518547858.png

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2025 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表