Ish*_*sha 2 sql-server syntax alias
select
convert(varchar(10), TotalSeconds / 3600) +':'+
convert(varchar(10), TotalSeconds % 3600 / 60) +':'+
convert(varchar(10), TotalSeconds % 60) as Seconds
from
(select
DateDiff
(second, date,outtime )
as TotalSeconds
from attendance.attn_card_register) x -- this one
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 12
FROM 子句中使用的所有表都必须具有标准 SQL 术语中的“相关名称”,即普通白话 SQL 中的“别名”
直接使用表的时候,名字就很明显了。当您使用内联派生表时,无论是否实际引用它,它都必须具有别名
您也可以使用 CTE。这里“MyCTE”是名称,不需要别名
;WITH MyCTE AS
(
select
DateDiff (second, date,outtime) as TotalSeconds
from
attendance.attn_card_register)
)
Select
convert(varchar(10), TotalSeconds / 3600) +':'+
convert(varchar(10), TotalSeconds % 3600 / 60) +':'+
convert(varchar(10), TotalSeconds % 60) as Seconds
from
MyCTE;
Run Code Online (Sandbox Code Playgroud)
编辑:并非所有 RDBMS 都需要它。SQL Server、MySQL 和 Teradata 有,而 Oracle 没有。
Rob*_*ler 11
它是用于引用派生表的别名。在外部 SELECT 中,如果您完全限定了他们将读取的列引用x.TotalSeconds
select convert(varchar(10)
, x.TotalSeconds / 3600) +':'+ convert(varchar(10)
, x.TotalSeconds % 3600 / 60) +':'+ convert(varchar(10)
, x.TotalSeconds % 60) as Seconds
from (select DateDiff (second, date,outtime ) as TotalSeconds
from attendance.attn_card_register) x
Run Code Online (Sandbox Code Playgroud)