2016-11-03 2 views
0

Die folgende Abfrage gibt einen nicht spezifischen Fehler zurück.Wie mache ich eine String-Operation für eine benannte Unterabfrage?

SELECT 
    mt.id 
    ,mt.name 
    ,(SELECT 
     fname 
     FROM 
     othertable 
     WHERE 
     name = mt.name 
    ) AS first_name 
    ,LOWER(first_name) 
FROM 
mytable mt 

Wie mache ich String-Operation auf dieser benannten Spalte?

+0

Sie können keinen Alias ​​in der SELECT-Klausel verwenden –

+0

Nun, es funktioniert in meinem Kontext, aber ich habe es entfernt. Frage steht. – mmcglynn

+0

Ich meine '(...) AS first_name , LOWER (first_name)' funktioniert nicht, da Sie 'first_name' in SELECT –

Antwort

1

Sie können das Ergebnis eines Subselects nicht in einer anderen Spalte verwenden. Wenn Sie Kleinbuchstaben haben wollen, tun Sie das im Subselect. Wenn Sie beide (Kleinbuchstaben und Normal) benötigen, tun Sie dies entweder in zwei verschiedenen Subselects (es tut weh zu sagen, dass - würde es nicht empfehlen) oder tun Sie das im Code.

Oder versuchen Sie vielleicht, Ihren Code als Join neu zu schreiben.

+0

Ja auf dem JOIN wiederverwenden. Mein Fehler. – mmcglynn

Verwandte Themen