sql語句中select as的用法

2021-08-20 09:43:47 字數 2601 閱讀 1177

sql-server中欄位別名的特殊使用

mysql中使用表別名與字段別名的基本教程

謝謝原作者的辛勤付出,貼過來如下:

有如下sql語句:

【案例1】

select

username 

asa,  useraddress 

asbfrom testtable

where

alike

'%am%' 

該語句執行是會報錯,因為

別名只是對字段的一種引用,不能當作字段一樣使用,如果真要把別名當欄位一樣使用,可以如下變通:

select a, b

from(

select

username as

a,  useraddress as

bfrom testtable

) as 

temptable 

where a 

like

'%dd%' 

如此,便可把別名當欄位一樣使用了

但是需要和足以紫色字型部分,該處要給內嵌的select查詢指定乙個別名,否則會報錯

【案例2】

select coutday 

asa, month1 

asb,  

(select 信用天數 from paydays where 自定義值 = month1

)asc,  (

a+ c) as 

'total' 

from testtable

變通為:

select a, b, 

a + c as

'total'

from(

select coutday as

a, month1 as

b,  (select 信用天數 from paydays where 自定義值 = month1) as

cfrom testtable

) as 

temptable 

【案例3】

下面的sql語句中中,灰色部分重複了兩次,第二個灰色部分有不能用第乙個灰色區域的別名countdays替換,一旦替換會出現語法錯誤。

select 

ccustcode as 客戶**,

cpayway as 付款條件,  

cpaycode as 付款方式,

case

when cpayway like '%月結%' then (datediff(day, doutdate, dateadd(ms,-3,dateadd(mm, datediff(m,0,doutdate)+1, 0))) + (select 信用天數 from paydays where 自定義值 = cpayway))

else (select 信用天數 from paydays where 自定義值 = cpayway)

end as countdays,

convert(varchar(12),doutdate, 102) as 出庫日期,

convert(varchar(12),dateadd(day, cast(

( case

when cpayway like '%月結%' then (datediff(day, doutdate, dateadd(ms,-3,dateadd(mm, datediff(m,0,doutdate)+1, 0))) + (select 信用天數 from paydays where 自定義值 = cpayway))

else (select 信用天數 from paydays where 自定義值 = cpayway)

end) as int), doutdate), 102) as  實際回款日期

from ods.f_dispatchlist_all

where (isum-isnull(nsumaramt,0))>10e-8 

我們把第二個灰色部分提出來,改為

select 客戶**,付款條件,  付款方式,countdays,出庫日期,convert(varchar(12),dateadd(day, cast(

countdays)as int), doutdate), 102)

as  實際回款日期 

from(

select 

ccustcode as 客戶**,

cpayway as 付款條件,  

cpaycode as 付款方式,

case

when cpayway like '%月結%' then (datediff(day, doutdate, dateadd(ms,-3,dateadd(mm, datediff(m,0,doutdate)+1, 0))) + (select 信用天數 from paydays where 自定義值 = cpayway))

else (select 信用天數 from paydays where 自定義值 = cpayway)

end as 

countdays,

convert(varchar(12),doutdate, 102) as 出庫日期

from ods.f_dispatchlist_all

where (isum-isnull(nsumaramt,0))>10e-8  )

sql語句中select as的用法

sql server中欄位別名的特殊使用 mysql中使用表別名與字段別名的基本教程 謝謝原作者的辛勤付出,貼過來如下 有如下sql語句 案例1 select username asa,useraddress asbfrom testtable where alike am 該語句執行是會報錯,因為...

Sql語句中的DDL語句

資料庫模式定義語言ddl data definition language 是用於描述資料庫中要儲存的現實世界實體的語言。主要由create 新增 alter 修改 drop 刪除 和 truncate 刪除 四個關鍵字完成。create database 資料庫名 建立乙個資料庫 create d...

sql查詢語句中

sql查詢語句中select t.status,t.rowid from person t where t.status 2,此處查詢的是status不等於2的記錄,並過濾掉status為null的記錄。注意 此處不管status是integer型別還是long型別,都會過濾掉status為null...