oracle select 重命名,如何在SELECT语句中重命名和引用COUNT(*)?
我正在尝试在SELECT语句中使用COUNT(*)。但是,我需要重新命名它,并能够为WHERE子句引用它。
我尝试过使用AS,我尝试省略AS,因为根据oracle页面似乎没有必要:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions032.htm
尝试将新标识符包装在引号中,但这也不起作用。
这是有效的,但是为计数提供了一个oracle生成的名称,这是不理想的,我不知道如何引用每行的计数:
SELECT
school_name,
(SELECT COUNT(*)
FROM liason_to
WHERE school_name = s.school_name)
FROM school s;
这是我尝试但不起作用的:
SELECT
school_name,
(SELECT COUNT(*) AS numLiasons
FROM liason_to
WHERE school_name = s.school_name)
FROM school s
WHERE numLiasons > 0;
它不会使列名称为“numLiasons”,并且末尾的where子句不知道numLiasons是什么,因此失败。
1
投票
您可以通过在其后面添加一个名称来为列添加别名,也可以在两者之间使用关键字AS。它与您对表格的处理基本相同。
SELECT school_name,
(SELECT count(*)
FROM liason_to l
WHERE l.school_name = s.school_name) AS numliasons
FROM school s;
或者干脆
SELECT school_name,
(SELECT count(*)
FROM liason_to l
WHERE l.school_name = s.school_name) numliasons
FROM school s;
但是你不能在WHERE子句中使用别名(在WHERE子句中的条件选择了记录之后发生了别名)。你必须重复这一尝试。
SELECT school_name,
(SELECT count(*)
FROM liason_to l
WHERE l.school_name = s.school_name) numliasons
FROM school s
WHERE (SELECT count(*)
FROM liason_to l
WHERE l.school_name = s.school_name) > 0;
1
投票
您可以使用连接和分组来避免子查询..并且您可以将您喜欢的anme指定为别名
SELECT s.school_name, COUNT(*) as my_count
FROM school s
INNER JOIN liason_to l on s.school_name = l.school_name
GROUP BY s.school_name
使用您的代码,您只需在(子选择)列上分配别名即可
SELECT
school_name,
(SELECT COUNT(*)
FROM liason_to
WHERE school_name = s.school_name) as my_name
FROM school s;
无论如何要过滤你可以使用的聚合结果但是对于count(*)记住这只适用于非空行,所以通常count(*)是> 0
0
投票
您不能在WHERE子句中引用别名,但您可以这样做:
SELECT
t.school_name,
t.numLiasons
FROM (
SELECT
s.school_name,
(
SELECT COUNT(*)
FROM liason_to
WHERE school_name = s.school_name
) AS numLiasons
FROM school s
) t
WHERE t.numLiasons > 0;
oracle select 重命名,如何在SELECT语句中重命名和引用COUNT(*)?相关推荐
- Oracle 10g数据库基础之基本查询语句-中-函数
Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...
- oracle只查询0点数据,Oracle 10g数据库基础之基本查询语句-中-函数
Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...
- 如何在if语句中表示多个条件?
本文翻译自:How to represent multiple conditions in a shell if statement? I want to represent multiple con ...
- oracle sum函数返回空,关于SQL语句中SUM函数返回NULL的解决办法
SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如 ...
- oracle不使用游标,oracle – 为什么我们不能在动态SQL语句中使用强引用游标?
这是一个带有强类型引用游标的过程: SQL> create or replace procedure p1 is 2 type dept_rc is ref cursor return dept ...
- Solidworks使用技巧:文件重命名:在装配体中重命名零部件 在文件夹中重命名文件
在装配体中重命名零部件: 1. 打开装配体文件后,依照下图红框标示,依次选取 工具→系统选项→FeatureManager→在允许通过FeatureManager设计树重命名零部件文件前打勾: 以上完 ...
- arch linux密码忘记,如何在Arch Linux中重设忘记的root密码
作为root用户被锁定在服务器系统之外,而您无法回忆起密码,改怎么办?通常我们长时间没有以root用户身份登录,就可能忘记了root的密码.但不用担心,在本文中,我们将逐步指导您如何在Arch Lin ...
- 如何在'纯'Swift中创建弱协议引用(不带@objc)
本文翻译自:How can I make a weak protocol reference in 'pure' Swift (without @objc) weak references don't ...
- python 语言变量命名规则的是_Python中变量命名规则有哪些
Python中变量命名规则有哪些 发布时间:2020-09-24 13:05:21 来源:亿速云 阅读:72 今天就跟大家聊聊有关Python中变量命名规则有哪些,可能很多人都不太了解,为了让大家更加 ...
最新文章
- linux基础(2)-网卡配置
- 阿里云linux centos 一键部署web环境--图文详解
- SAP S/4HANA分层存储仓库原理介绍LREP - Layered Repository
- 【CCS2018】SDN跨应用中毒攻击
- 男女薪酬差异扩大 2018年女性薪酬不及男性8成?
- python输入hello输出olleh_Python小试牛刀(经典例题)[连载中]
- 智能优化算法应用:基于GWO优化的Renyi熵图像多阈值分割 - 附代码
- 页面常见的布局方式(图解)
- MVC Area领域处理以及T4MVC的使用
- mac虚拟机服务器设置u盘启动不了,mac虚拟机如何使用u盘启动盘
- 红红火火的丹麦造陆运动,和它恍恍惚惚的“硅谷梦”
- 华为S5700_交换机_基础管理配置
- LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
- 人人开源后台项目maven构建(yyds)
- Conflux 请你“出名”啦!
- Java 中this和super的用法总结
- 配一副适合程序员的眼镜
- Your CLT does not support macOS 11
- SkeyeVSS综合安防视频云服务H5无插件直播点播实现HEVC H265 300毫秒以内低延迟播放
- 基于WTK6900H语音识别芯片在智能语音识别晾衣架的应用设计方案介绍
热门文章
- jdk1.8 stream() 把List对象 变成String
- 笔记本电脑无法连上WiFi的解决办法
- 如何搭建用户体验指标体系?
- linux中的clock shew 问题的解决方法
- 程序 = 数据结构 + 算法?真的是这样的吗?
- 工业相机及镜头的相关概念与相机及镜头的选型
- GNN-图卷积模型-2016:PATCHY-SAN【图结构序列化:将图结构转换成了序列结构,然后直接利用卷积神经网络在转化成的序列结构上做卷积】
- 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (二)
- 【人工智能】谭铁牛院士:人工智能新动态
- 【HTML5】网页实用技巧3:将方形图片设置成圆形后,添加圆形虚线边框