回答

收藏

如何在Oracle中计算字符串中的单词数?

技术问答 技术问答 143 人阅读 | 0 人回复 | 2023-09-13

我正在尝试计算SQL字符串中有多少个单词。
" @, C' H' U; n; K) R$ q, j4 }% aSelect  ("Hello To Oracle") from dual;
7 J* F  E# v4 ^我想显示字数。在给定的示例中,尽管单词之间可能有多个空格,但将为3个单词。* l: c3 H0 {$ E& ~5 y- Q
               
4 E- }4 z' _2 L( L解决方案:& P" E0 ^" Q7 h
                3 N% V/ m" v  ]# i/ d/ O

1 t: T5 o( x) f5 v% y: e
3 }8 G( x( u' c3 }' B                您可以使用与此类似的内容。这将获取字符串的长度,然后减去空格后减去字符串的长度。然后,将数字加到第一应该给你的单词数:! L6 l# v! m- Y8 G2 L6 Z
Select length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
5 |8 D3 F; ?/ B. ?9 N. nfrom yourtable. [' I2 x/ X: A4 P3 G( {! F
参见带有演示的SQL Fiddle
* Y: P' _9 u) |" Q) S9 z5 @  i0 m如果您使用以下数据:
8 W- W& M# v+ I* o$ Z* D7 aCREATE TABLE yourtable$ b: A' H) D: A
    (yourCol varchar2(15))4 s0 e* V' S: l2 ]) r* v# X
;
( B* \7 _: W+ r. S; H3 F+ LINSERT ALL ) B3 \( l4 Y; U
    INTO yourtable (yourCol)5 q* n% l. u! n8 R7 ~* a" M: v# x' R
         VALUES ('Hello To Oracle')( S9 ?8 n) M, U
    INTO yourtable (yourCol)
1 J3 ~: I8 U9 y. g# W& ^         VALUES ('oneword')
! _7 w& a: r  T! o. }5 [    INTO yourtable (yourCol)% L. e% H: c) w" ]1 Z6 p
         VALUES ('two words')7 t2 }( g. f2 S+ `  S1 U
SELECT * FROM dual
5 |9 ^6 B6 j* B) [( F;
  F  Q" o2 e7 d' ^, z和查询:
: U5 K, U( p8 NSelect yourcol,
5 s, T) a1 l7 j9 S9 Q) h5 Q  length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords' Q& \* J. N& V6 _  ]
from yourtable
0 W. J9 \4 @0 E6 \4 Z6 Y: o结果是:" I' @  q# d0 V3 R/ o" t& ?
|         YOURCOL | NUMBOFWORDS |0 A# \# D! I! @# C
---------------------------------
% g& M( }) d6 Y1 x/ i| Hello To Oracle |           3 |
1 c- X0 w  q, L! y$ ||         oneword |           1 |
! c" o1 x- O  h0 f|       two words |           2 |
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则