2013-04-23 2 views
5

Я знаю, что может указать псевдоним столбца следующим образом:SQL использовать имя столбец псевдоним без ВЫБОРА

SELECT stuff as mask 

Есть ли способ, я могу указать столбец псевдоним без возвращающихся, что данные столбцов в результате набор? По сути, я хочу, чтобы иметь возможность сделать свой запрос чистым, выполнив:

SELECT doManipulationStuff(cleanCompactAlias) 

Где

reallyLong.misleading.andAnnoying.columnName as cleanCompactAlias 

ответ

4

Вы можете использовать Common Table Expression (CTE) для создания подзапроса с псевдонимами:

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

Таким образом вы можете поместить все свои псевдонимы в CTE и просто забыть об этом при вызове своих функций. Вы все еще должны делать псевдонимы где-то, но это по крайней мере не позволяет вам выполнить свой основной запрос, чтобы сделать его более читаемым.

+0

... только если вы используете версию SQL Server, которая ее поддерживает. – Yuck

+0

Существуют другие СУБД, поддерживающие CTE. Но точка взята - не все поддерживают этот синтаксис. Я считаю, что MySQL этого не делает. –

3

Вы можете использовать подзапрос:

select doManipulationStuff(cleanCompactAlias) 
from (select t.*, reallyLong.misleading.andAnnoying.columnName as cleanCompactAlias 
     . . . 
    ) t 
Смежные вопросы