2016-11-03 49 views
0

以下查詢返回非特定錯誤。如何對指定的子查詢執行字符串操作?

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

如何在此命名列上進行字符串操作?

+0

你不能在SELECT子句中使用別名 –

+0

嗯,它在我的上下文中工作,但我已經刪除它。問題站。 – mmcglynn

+0

我的意思是'(...)AS first_name ,LOWER(first_name)''不起作用,因爲您在SELECT中重複使用'first_name' –

回答

1

您不能在另一列中使用子查詢的結果。如果你想使它小寫,那麼在子選擇中做。如果你需要同時使用(小寫和普通),可以在兩個不同的子查詢語言中使用它(它會傷害說 - 不會建議它),或者在代碼中這樣做。

或者也許嘗試將您的代碼重寫爲聯接。

SELECT 
    mt.id 
    ,mt.name 
    ,ot.fname 
    ,LOWER(ot.fname) as lower_fname 
FROM mytable mt 
JOIN othertable ot ON ot.name = mt.name 
+0

在JOIN上是。我的錯。 – mmcglynn