0

各行の文字セット(aeıioöuü)のインスタンスを数える必要があります。

例えば:

"linebreak" should return 4.
"indent" should return 2
"quote" should return 3

私はこれで1つの文字を数えることができます:

SELECT LENGTH(col) - LENGTH(REPLACE(col, 'a', ''))

また、文字のセットを数える方法を見つけました。

SELECT LENGTH(col) - LENGTH(REPLACE(REPLACE(REPLACE(col, 'a', ''), 'e', ''), 'ı', ''))...

ただし、このクエリは拡大し続けるため、混乱を招きます。ワイルドカードなどを使用したより良い方法はありますか?

4

1 に答える 1

1

私が実際に必要としていたのは、特定の数の a、e、ı、i、o、ö、u、または ü を持つ行です。発生回数ではありません。次のクエリは、母音文字が 1 つしかない行を返します。

SELECT COUNT(*) AS cnt FROM [table]
WHERE col Like '%[aeıioöuü]%'
AND col NOT LIKE '%[aeıioöuü]%[aeıioöuü]%'

そして、これは母音文字が 2 つしかない行を返します。

SELECT COUNT(*) AS cnt FROM [table]
WHERE col Like '%[aeıioöuü]%[aeıioöuü]%'
AND col NOT LIKE '%[aeıioöuü]%[aeıioöuü]%[aeıioöuü]%'

等々...

于 2013-01-21T09:46:50.340 に答える