2017-05-31 2 views
0

実際のフィールド名ではなく、REGEXP_COUNTファンクションの最初のパラメータとしてエイリアスを使用できますか。たとえば、私は次のように使用:Oracle - REGEX_COUNTファンクションのfistパラメータでエイリアスを使用する

SELECT first_name ||' '|| last_name as fullname, 
     REGEXP_COUNT(fullname, 'o', 1, 'i') AS total 
FROM BROKERS 

私は1つのフィールドとしての代わりに、連結「フルネーム」を呼び出して、私は私はそれを呼び出す必要があろうと考えさせられましたエラー「無効な識別子」を受信保つ

+2

番号を必要とする「フルネーム」とそれの数を選択します定義された。これはほぼすべてのデータベースに当てはまります。代わりにサブクエリまたはCTEを使用します。 –

+0

ゴードン、もしあなたが私を見せることができるなら、それはサブクエリでどのように見えますか?感謝 – Simulator23

答えて

1

を通りあなたはサブクエリを使用する必要があるコメントで述べた:

SELECT REGEXP_COUNT(b.fullname, 'o', 1, 'i') AS total 
    FROM (SELECT first_name ||' '|| last_name as fullname 
      FROM BROKERS) b; 

それともあなただけの機能で連結を行うことができます。

SELECT first_name ||' '|| last_name as fullname, 
     REGEXP_COUNT(first_name ||' '|| last_name, 'o', 1, 'i') AS total 
    FROM BROKERS 
GROUP BY first_name ||' '|| last_name; 

あなたはそれがどこにある `SELECT`で列の別名を再利用することも、それはできませんOracleではgroup by

SELECT b.fullname, 
     REGEXP_COUNT(b.fullname, 'o', 1, 'i') AS total 
    FROM (SELECT first_name ||' '|| last_name as fullname 
      FROM BROKERS) b 
    GROUP BY b.fullname; 
関連する問題