带case的列如何传参?

如题,带case的列建立参数后无法正确传参case substring(checker,2,10) when '02' then 'DK022'
when '05' then 'DK029'
when '07' then 'DK020'
when '10' then 'DK011'
when '12' then '转批号' else ' ' end
as 打单员

这样的列如何写参数呢
FineReportaustin1122 发布于 2016-8-30 16:39
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
qweqwe发布于2016-8-30 16:39(编辑于 2023-9-6 09:34)
555
最佳回答
0
macro_hard发布于2016-8-30 16:41(编辑于 2023-9-6 09:34)
555
最佳回答
0
austin1122发布于2016-8-30 16:43(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    ${switch(p1,\'02\',\" when  \'02\' then \'DK022\'\".......)}
    回复
    2016-08-30 16:50 
最佳回答
0
macro_hard发布于2016-8-30 16:50(编辑于 2023-9-6 09:34)
555
  • austin1122 austin1122(提问者)

    不好意思大神
    不大明白
    我想要的是大概这样子的
    case substring(checker,2,10) when \'02\' then \'DK022\'
    when \'05\' then \'DK029\'
    when \'07\' then \'DK020\'
    when \'10\' then \'DK011\'
    when \'12\' then \'转批号\' else \' \' end = \'${打单员}\'
    差不多这样的传参,但我这样说预览为空
    回复
    2016-08-30 16:56 
最佳回答
0
austin1122发布于2016-8-30 16:56(编辑于 2023-9-6 09:34)
555
最佳回答
0
JOYminru发布于2016-8-30 17:00(编辑于 2023-9-6 09:34)
555
  • austin1122 austin1122(提问者)

    这个是在select的时候用还是在where那里用呢
    我试一下哈
    回复
    2016-08-30 17:15 
最佳回答
0
austin1122发布于2016-8-30 17:15(编辑于 2023-9-6 09:34)
555
  • JOYminru JOYminru

    我试过在select和group by 中使用,where 里使用if就行
    回复
    2016-08-30 17:17 
最佳回答
0
JOYminru发布于2016-8-30 17:17(编辑于 2023-9-6 09:34)
555
  • austin1122 austin1122(提问者)

    试了下不行哈
    要如何改呢
    我吧完整语句发出来大神帮忙看看哈
    select year(udate)*100+month(udate) as 月份,convert(varchar(100),udate,23) as 入库日期,case substring(checker,2,10) when \'02\' then \'DK022\'
    when \'05\' then \'DK029\'
    when \'07\' then \'DK020\'
    when \'10\' then \'DK011\'
    when \'12\' then \'转批号\' else \' \' end
    as 打单员,
    case juanshu when \'1\' then \'半成品\' else  \'成品\' end as 产品归类,sum(nweight) as 净重,sum(gweight) as 毛重,sum(1) AS 包装件数,\'老包装\' AS 系统
    from tHeGeZheng where udate>=\'2003-01-01\' and pdate>=\'2016-1-1\'
    ${if(len(月份)==0,\"\",\"AND year(udate)*100+month(udate) = (\"+月份+\")\")}
    ${if(len(入库日期)==0,\"\",\"AND convert(varchar(100),udate,23) = (\'\"+入库日期+\"\')\")}
    and DATEDIFF(month,udate,GETDATE())<=1
    group by substring(checker,2,10),convert(varchar(100),udate,23),case juanshu when \'1\' then \'半成品\' else  \'成品\' end,
    year(udate)*100+month(udate) order by convert(varchar(100),udate,23),substring(checker,2,10)


    就是CASE substring那里直到 AS 打单员那列
    回复
    2016-08-30 17:23 
最佳回答
0
austin1122发布于2016-8-30 17:23(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    需求没描述清楚啊
    回复
    2016-08-30 17:36 
  • macro_hard macro_hard

    需求没描述清楚啊
    回复
    2016-08-30 17:36 
最佳回答
0
macro_hard发布于2016-8-30 17:36(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 722浏览人数
  • 最后回答于:2016-8-31 15:23
    活动推荐 更多
    热门课程 更多
    返回顶部