case when then 函数SQL语句,这个是不是只在显示的时候回发生改变,其值是不变的??

image.png这个是不是只在显示的时候回发生改变,其值是不变的??我应该怎么才能让state的值是 是 和 否呢?

GUESS_ 发布于 2019-8-15 15:38
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
张洪威Lv6高级互助
发布于2019-8-15 15:40

case when  你这是用select 语句写的,只是显示值变了。

要改变数据库里面的0,1需要用upadate 语句去写,数据库存0,1挺好的啊。

  • GUESS_ GUESS_(提问者) 因为我传参数的时候,用的是系列名 值是 是和否,列表里的值却是0和1,对应不上
    2019-08-15 16:12 
  • 张洪威 张洪威 回复 GUESS_(提问者) 你这个传参是帆软里面传的吗?你可以用switch或者if函数 在传参的公式里面把是否转换成0和1。
    2019-08-15 16:19 
  • GUESS_ GUESS_(提问者) 回复 张洪威 麻烦的是,我用的是系列名,参数用的系列名,if函数用在哪里呢?
    2019-08-15 16:38 
  • 张洪威 张洪威 回复 GUESS_(提问者) 图表传系列名IF好像不太行,你可以在case when 的sql 外面嵌套一层select aa* from (带case when 的sql)aa ,套一层之后就可以对case when 处理返回的是否进行与参数比较了。
    2019-08-15 16:47 
  • GUESS_ GUESS_(提问者) 回复 张洪威 嗯嗯,楼下的朋友提出来了
    2019-08-15 16:49 
最佳回答
0
zhou_jhLv3初级互助
发布于2019-8-15 16:20(编辑于 2019-8-15 16:22)

系列名用数据字典,实际值 0 显示值为 否

也可以包一层查询 select *from (
select distinct  case when abctype = 1 then '是' else '否' end statu from mfitem
) where statu = '是'

  • GUESS_ GUESS_(提问者) 不好意思,我想问一下为什么要用查询呢?
    2019-08-15 16:47 
  • zhou_jh zhou_jh 回复 GUESS_(提问者) 你传参数的时候要查数据,不得在数据集里面写条件吗?
    2019-08-15 16:49 
最佳回答
0
zsh331Lv8专家互助
发布于2019-8-15 16:34
SELECT * FROM tabname 
WHERE  1=1 
       AND ( CASE
               WHEN state = 1 THEN '是'
               WHEN state = 0 THEN '否'
             END ) = '${参数名}'  -- '是'


  • GUESS_ GUESS_(提问者) 不好意思,我好像没有看懂这段SQL的意思?
    2019-08-15 16:49 
  • zsh331 zsh331 回复 GUESS_(提问者) 在条件中执行case when就解决了你的困惑!
    2019-08-15 17:32 
最佳回答
0
凌建Lv7高级互助
发布于2019-8-16 08:42

什么叫只在显示的时候发生改变,你这个相当于重新定义了一个新的字段,跟你所谓的显示值有什么关系.

  • 5关注人数
  • 573浏览人数
  • 最后回答于:2019-8-16 08:42
    请选择关闭问题的原因
    确定 取消
    返回顶部