2013-04-23 28 views
5
WAHL

ich weiß, dass ich wie so eine Spalte alias angeben:SQL Verwendung Spaltenname alias ohne

SELECT stuff as mask 

Gibt es eine Möglichkeit ich eine Spalte alias ohne angeben kann so eingestellt, dass die Spaltendaten in der Folge der Rückkehr? Im Grunde möchte ich in der Lage sein zu meiner Anfrage sauber, indem Sie zu machen: eine Unterabfrage verwenden könnte

SELECT doManipulationStuff(cleanCompactAlias) 

Wo

reallyLong.misleading.andAnnoying.columnName as cleanCompactAlias 

Antwort

4

Sie einen allgemeinen Tabellenausdruck verwenden können (CTE) zum Erstellen einer Unterabfrage mit Aliasen:

WITH clean_cte AS 
(
    SELECT reallyLong.misleading.andAnnoying.columnName1 as cleanCompactAlias1, 
    reallyLong.misleading.andAnnoying.columnName2 as cleanCompactAlias2 
) 
SELECT doManipulationStuff(cleanCompactAlias1), 
    doManipulationStuff(cleanCompactAlias2) 

Auf diese Weise können Sie Ihr gesamtes Aliasing in das CTE einfügen und es einfach vergessen, wenn Sie Ihre Funktionen aufrufen. Sie müssen das Aliasing immer noch irgendwo durchführen, aber das hält es zumindest von Ihrer Hauptabfrage fern, um es lesbarer zu machen.

+0

... nur, wenn Sie eine Version von SQL Server verwenden, die dies unterstützt. – Yuck

+0

Es gibt andere RDBMS, die CTEs unterstützen. Aber Punkt genommen - nicht alle unterstützen diese Syntax. Ich glaube, MySQL tut es nicht. –

3

Sie:

select doManipulationStuff(cleanCompactAlias) 
from (select t.*, reallyLong.misleading.andAnnoying.columnName as cleanCompactAlias 
     . . . 
    ) t 
Verwandte Themen