這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 编程语言 » sql筛选条件中如何使用别名
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql筛选条件中如何使用别名

发布时间: 2022-05-06 20:00:10

sql 中如何用别名作为查询条件

SQL Server 2005/2008
Oracle 10/11

可以用 CTE, 来 “曲线”的实现这个要求.

例如:

1> with myCTE AS (
2> SELECT 1+2+3+4 AS 别名 UNION ALL
3> SELECT 2+3+4+5 AS 别名
4> )
5> SELECT * FROM myCTE WHERE 别名 = 10
6> go
别名
-----------
10

(1 行受影响)

⑵ SQL别名用法!!

这个简单吧:
Select (a+b+c+……) as var,(a+b+c+……)/N as var/N from student;
as关键字可以省略
还可以这样写
Select var,var/N from (
Select (a+b+c+……) as var from student
);
不知楼主是否满意。

⑶ 在select 中的别名 能做 条件吗

  1. select(SYSDATE-1)AA,(AA+3)BBFROMDUAL;

--报错,别名在SELECT语句选中字段或者表达式后生效,不能用别名在SELECT语句中直接进行运算,因为SELECT会吧AA+3当成一个字段解读,但是AA这个别名是在SELECT之后生成的,所以会报错。

  1. selectSYSDATE-1AAFROMDUAL;--正确

所以你要搞清楚别名产生的时机以及sql语句各个子句的执行顺序,就很容易搞明白了

--列别名

--当一个select语句中包含好函数或者表达式的时候

--查询结果对应的该字段就是使用这个函数或者表达式

--作为名字的字段

--使用别名时因SQL语句各子句的执行顺序引起的问题

ORACLE中的SQL语句:

1.WHERE/GROUPBY/HAVING子句中只能直接使用栏位或者常量,而不能使用栏位的别名,

除非这个别名来自子查询之中。

如:SELECT....FROM(SELECTCOLUMN_NAMECFROMTABLE_NAME)WHEREC>1

为什么在子查询中可以是因为子查询一般都跟在FROM语句之后,而FROM语句是先执行的

所以FROM语句里面子查询的别名肯定是先于外层查询语句的子句先生成的。所以子查询

过后可以使用别名。

2.而ORDERBY则可以直接使用别名,如SELECTCOLUMN_NAMECFROMTABLE_NAMEORDERBYC

这和SQL的执行顺序是有关的。

SQL语句的执行顺序大致如下所示:

1.FROM语句

2.WHERE语句(结合条件)

3.STARTWITH语句

4.CONNECTBY语句

5.WHERE语句

6.GROUPBY语句

7.HAVING语句

8.MODEL语句

9.SELECT语句

10.UNION、MINUS、INTERSECT等集合演算演算

11.ORDERBY语句

我们可以看到SELECT子句是在WHERE子句执行后才执行的,当SELECT子句执行时查询列的别名才生成,

所以在WHERE子句中根本看不到列的别名,当然,自然也就无法引用列的别名了。

所以字段、表达式的别名在WHERE子句和GROUPBY子句都是不能使用的。

而在ORDERBY中不仅可以使用别名,甚至可以直接使用栏位的下标来进行排序。

如:ORDERBYID或者ORDERBY1

⑷ 在SQL―Select查询语句中,若要给字段取一个别名,应使用什么关键字

以下种办法都可以,as和直接用空格都行

  1. selectcolumnAasNEWA

  2. selectcolumnANEWA

⑸ 怎样用sql语句查询所有字段,但是又得给某一个字段设置一个别名

1、新建一个test数据库,在数据库中创建一个data数据表,在表内插入四条测试数据。

⑹ sql中如何为查询出来的表起别名呢,而且能根据查询后的表别名就查找

1、查看数据库中的表信息。

注意事项:

SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。

⑺ SQL 查询出的值起别名

学生表(stuTable),另外再建一张性别表(sexTable),只需要2个字段,代号(sex_id) 和性别(sex),然后插入两行数据,(1,男)和(2,女)。
比如说stuTable有3个字段,学号(sno),姓名(sna),性别(sex_id)
那SQL语句就那么写:select stuTable.sno,stuTable.sna,sexTable.sex from stuTable left join sexTable on stuTable.sex_id = sexTable.sex_id
如果还需要筛选的话再在后面用where条件。
如果用as的是只是给字段起一个名字而已,并不能改变查询结果

⑻ sql语句中别名怎么使用

这里不能用rn

你的意思可能是

select a.* from (select t.*,rownum rn from emp t order by sal desc) a where rn<10

这样就可以用了,在where条件里面不能用本层查询的字段的别名。