2016-05-24 14 views

Antwort

1

Die ersten Namen die Spalte value. Es wird in der Regel unter Verwendung von as geschrieben:

select 'mari makan' as value 
from dual ; 

Die zweiten gibt keinen benutzerdefinierten Namen die Spalte.

2

Der Unterschied zwischen ihnen besteht darin, dass die erste Abfrage diese Spalte aliasiert und ihr einen eindeutigen Namen gibt, während die andere dies nicht tut.

Was bedeutet das?

SELECT * FROM (
    SELECT 'asda' FROM dual 
    UNION 
    SELECT 'asdasda' FROM dual 
) 
WHERE ??? = ?? 

Diese Abfrage wird die Spalte nicht Aliasing, wenn Sie diese Spalte in der anderen Abfrage verwenden wollen, werden Sie ein Problem haben. Ich denke, der Standard ist, die Spalte nach dem, was Sie ausgewählt haben, zu benennen, was bedeutet, dass sie 'asda' heißen wird.

im Gegensatz zu:

SELECT * FROM (
    SELECT 'asda' Col1 FROM dual 
    UNION 
    SELECT 'asdasda' as Col1 FROM dual 
) WHERE Col1 <> 'asda' 

Welche Sie diese Spalte aus einer äußeren Abfrage aufrufen lassen.

Der Standard ist, es als SELECT <Col> AS <New_Name> zu schreiben, aber es kann auch mit der AS geschrieben werden.

Verwandte Themen