當前位置:首頁 » 編程語言 » 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條件裡面不能用本層查詢的欄位的別名。