SQL の文字列に含まれる単語数を数えようとしています。
Select ("Hello To Oracle") from dual;
単語数を表示したい。与えられた例では、単語間に複数のスペースが存在する可能性がありますが、3 つの単語になります。
これに似たものを使用できます。これは文字列の長さを取得し、スペースを削除して文字列の長さを引きます。次に、それに数字の1を追加すると、単語数が得られます。
Select length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable
デモで SQL Fiddle を参照してください
次のデータを使用する場合:
CREATE TABLE yourtable
(yourCol varchar2(15))
;
INSERT ALL
INTO yourtable (yourCol)
VALUES ('Hello To Oracle')
INTO yourtable (yourCol)
VALUES ('oneword')
INTO yourtable (yourCol)
VALUES ('two words')
SELECT * FROM dual
;
そしてクエリ:
Select yourcol,
length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable
結果は次のとおりです。
| YOURCOL | NUMBOFWORDS |
---------------------------------
| Hello To Oracle | 3 |
| oneword | 1 |
| two words | 2 |
Oracle 11gを使用しているので、さらに簡単です-
select regexp_count(your_column, '[^ ]+') from your_table
複数のスペースも削除する必要がある場合は、これを試してください。
Select length('500 text Oracle Parkway Redwood Shores CA') - length(REGEXP_REPLACE('500 text Oracle Parkway Redwood Shores CA',
'( ){1,}', '')) NumbofWords
from dual;
テーブルを使用したので、dual
これを独自の開発環境で直接テストできます。