请问一下,当我用selectas从表A中选出一个列后,如何把这个列加入到这个表A中,详细问题和图片

地区测试.jpg地区测试2.jpg地区测试3.jpg地区测试4.jpg

如图,我想把从表A中筛选出的别名列"AREA"作为新列加入到表A中。因为目前的列不满足条件,一查询就会报错:Unknown column “AREA” IN WHERE CLAUSE;

问题总结:如何把select as生成的列名在where语句中使用。

FineReport kmx277564915 发布于 2021-8-26 17:12 (编辑于 2021-8-26 18:48)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
霜凡Lv5中级互助
发布于2021-8-26 17:28

把case when的语句作为子查询,外面加上嵌套:

SELECT * FROM (SELECT CASE WHEN .... )A 

WHERE ...参数定义

  • kmx277564915 kmx277564915(提问者) 好的,谢啦,我的问题我现在发现其实就是:如何把select as生成的列名在where语句中使用。
    2021-08-26 18:48 
  • kmx277564915 kmx277564915(提问者) 我明天上班时候试试你的答案,但是这个语句中:“SELECT * FROM (SELECT CASE WHEN .... )A WHERE ...参数定义”的大写字母A是什么意思呀
    2021-08-26 18:52 
  • 霜凡 霜凡 回复 kmx277564915(提问者) A就是子查询的表别名,有的数据库不需要别名,有的需要比如Oracle
    2021-08-27 09:27 
  • 霜凡 霜凡 回复 kmx277564915(提问者) 将子查询得到的结果作为一张临时表
    2021-08-27 09:28 
  • kmx277564915 kmx277564915(提问者) 回复 霜凡 嗯,好的,谢啦~
    2021-08-27 09:58 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-8-26 17:16

CASE WHEN SUBSTRING(ABC,1,2)='' THEN '' WHEN SUBSTRING(ABC,1,2)='' THEN '' ELSE '' END AS 'AREA'

  • kmx277564915 kmx277564915(提问者) 谢啦,但是一样报错,我上传了图片3,你看一下我的完整SQL
    2021-08-26 17:21 
  • Z4u3z1 Z4u3z1 回复 kmx277564915(提问者) WHERE 后面错了
    2021-08-26 17:23 
  • kmx277564915 kmx277564915(提问者) 回复 Z4u3z1 当我在第四张图片那里输入参数值的时候就会报错(第二张图的报错)
    2021-08-26 17:25 
  • kmx277564915 kmx277564915(提问者) 回复 Z4u3z1 当不输入参数时,能显示全部的数据。 啊,能具体说下吗,我不知道哪句错了
    2021-08-26 17:26 
  • Z4u3z1 Z4u3z1 回复 kmx277564915(提问者) 把 CASE END 语句替换 where 后面的 area
    2021-08-26 17:26 
最佳回答
0
Moki_minLv5初级互助
发布于2021-8-26 18:54

这...把里面的查询包起来,做个子查询不就可以直接用了么?

  • 3关注人数
  • 414浏览人数
  • 最后回答于:2021-8-26 18:54
    请选择关闭问题的原因
    确定 取消
    返回顶部