2016-11-03 6 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

JOINのSELECT –

答えて

1

副選択の結果を別の列に使用することはできません。それを小文字にしたい場合は、subselectで行います。両方(小文字と普通)が必要な場合は、2つの異なる副選択項目のいずれかで行います(それはアドバイスしません)。

また、コードを結合として書き直してみることもできます。

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

はいで 'first_name'を再利用しているため、'(...)AS first_name 、LOWER(first_name) 'は機能しません。私の悪い。 – mmcglynn

関連する問題