我知道我可以指定一个列别名,如下所示:
SELECT stuff as mask
Run Code Online (Sandbox Code Playgroud)
有没有办法可以指定列别名而不在结果集中返回该列数据?从本质上讲,我希望能够通过以下方式使我的查询干净:
SELECT doManipulationStuff(cleanCompactAlias)
Run Code Online (Sandbox Code Playgroud)
哪里
reallyLong.misleading.andAnnoying.columnName as cleanCompactAlias
Run Code Online (Sandbox Code Playgroud)
您可以使用公共表表达式 (CTE) 创建带有别名的子查询:
WITH clean_cte AS
(
SELECT reallyLong.misleading.andAnnoying.columnName1 as cleanCompactAlias1,
reallyLong.misleading.andAnnoying.columnName2 as cleanCompactAlias2
)
SELECT doManipulationStuff(cleanCompactAlias1),
doManipulationStuff(cleanCompactAlias2)
Run Code Online (Sandbox Code Playgroud)
这样您就可以将所有别名放入 CTE 中,并在调用函数时忘记它。您仍然需要在某处执行别名操作,但这至少将其排除在主查询之外,以使其更具可读性。