Domanda

Come possiamo creare alias di una colonna della tabella in SQL Server?

È stato utile?

Soluzione

La creazione di alias è molto facile

SELECT tableColumnName as ColumnAlias FROM Table

Un'altra cosa è l'uso degli alias, è necessario ricordare che gli alias sono disponibili dopo la proiezione (selezione) Questo significa che non è possibile utilizzare queste alias nelle sezioni FROM, WHERE, GROUP BY, HAVING. È consentito solo in ORDER BY.

EDIT: Utilizzo di alias

Le tabelle:

STACK 
 - STACK_ID
 - STACK_NAME
 - STACK_ORDER
 - STACK_MIN
 - STACK_MAX

dichiarazione errata:

    SELECT 
     STACK_NAME, 
     STACK_MIN, 
     STACK_MAX, 
     STACK_MIN + STACK_MAX as STACK_SUM 
   FROM 
    STACK WHERE STACK_SUM = 10;

Usiamo in DOVE colonna di sezione che non è disponibile a questo livello.

Per risolvere questo abbiamo due opzioni

Option One - Facciamo il calcolo in cui istruzione

    SELECT 
     STACK_NAME, 
     STACK_MIN, 
     STACK_MAX, 
     STACK_MIN + STACK_MAX as STACK_SUM 
   FROM 
    STACK WHERE STACK_MIN + STACK_MAX = 10;

Opzione Due - Creiamo una tabella temporanea

WITH STACK_SUM_TAB AS (
 SELECT 
  STACK_NAME, 
  STACK_MIN, 
  STACK_MAX, 
  STACK_MIN + STACK_MAX as STACK_SUM 
 FROM STACK 
)

 SELECT 
  STACK_NAME, 
  STACK_MIN, 
  STACK_MAX, 
  STACK_SUM 
 FROM STACK_SUM_TAB WHERE STACK_SUM = 10;

Altri suggerimenti

select somecolumn as foo from bar where foo = 5
SELECT columnname AS [ColumnAliasName] FROM [TableName]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top