반응형
Oracle에서 문자열의 단어 수를 계산하려면 어떻게 해야 합니까?
SQL에 있는 문자열에 몇 개의 단어가 있는지 세어 보려고 합니다.
Select ("Hello To Oracle") from dual;
단어의 개수를 보여주고 싶습니다.주어진 예에서 단어 사이에 하나 이상의 공백이 있을 수 있지만 3개의 단어가 될 것입니다.
이것과 비슷한 것을 사용할 수 있습니다.이것은 문자열의 길이를 얻은 다음 공백을 제거한 상태에서 문자열의 길이를 풉니다.그 다음에 숫자 1을 더하면 단어 수를 알 수 있습니다.
Select length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable
다음 데이터를 사용할 경우:
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
테이블 당신은 당신 자신의 개발 환경에서 이것을 직접 테스트 할 수 있습니다.
DECLARE @List NVARCHAR(MAX) = ' ab a
x'; /*Your column/Param*/
DECLARE @Delimiter NVARCHAR(255) = ' ';/*space*/
DECLARE @WordsTable TABLE (Data VARCHAR(1000));
/*convert by XML the string to table*/
INSERT INTO @WordsTable(Data)
SELECT Data = y.i.value('(./text())[1]', 'VARCHAR(1000)')
FROM
(
SELECT x = CONVERT(XML, '<i>'
+ REPLACE(@List, @Delimiter, '</i><i>')
+ '</i>').query('.')
) AS a CROSS APPLY x.nodes('i') AS y(i)
/*Your total words*/
select count(*) NumberOfWords
from @WordsTable
where Data is not null;
/*words list*/
select *
from @WordsTable
where Data is not null
/이 로직에서 단독으로 계속할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14008509/how-can-i-count-the-number-of-words-in-a-string-in-oracle
반응형
'programing' 카테고리의 다른 글
컨트롤러 asp.net -core에서 최신 문화 가져오기 (0) | 2023.10.28 |
---|---|
PHP가 업로드된 파일을 임시 위치에 저장하는 이유와 이점은 무엇입니까? (0) | 2023.10.28 |
PHP/MySQL 삽입 null 값 (0) | 2023.10.28 |
Mysql: 레코드 수를 가져옵니다. (0) | 2023.10.28 |
post_date_gmt 대신 post_meta date 쿼리 (0) | 2023.10.23 |