2016-03-09 42 views
1

我必須從名和姓中得到多少次提及單詞「A」與條件那必須提到超過10次。 例如:1.亞歷山德拉Antatarovich Alatatatovica 2.亞倫Aaaantonich Albachiara .....僅提取特定單詞「A」時,比提及超過10次(來自姓氏和名字)的單詞要多

預期的結果是:

    `First_name    Last_name   Count` 

        Alessandra Antatarovich Alatatatovica  11 
        Aaron  Aaaantonich Albachiaraaa   12 
        AAAAcc     ABCDAAAAAAAAA   14 

的表的名稱是客戶

如果有一個名稱,姓氏與只有8「A」比該記錄不會顯示..如果有記錄例如名字:AAABBBAAANHDHD和姓氏:BBAAAAAAATK有13「A」比這個記錄將出現

+0

@artm,從那個例子我沒有解決我的問題..我將不勝感激,如果任何人都可以解決我的問題.. tnx –

+0

可以請你張貼一些樣本數據,預期的結果和你已經嘗試過的東西嗎? – Aleksej

+0

@ALEKSEJ,我想使用長度,但我不知道如何獲得「A」,並且不知道顯示多少次 –

回答

2

Oracle有regexp_count()功能爲此目的。

的基本語法是:

select regexp_count(FirstName || LastName, 'A') 

對於10的情況下,則是這樣的:

select c.*, regexp_count(FirstName || LastName, 'A') 
from client c 
where regexp_count(FirstName || LastName, 'A') > 10; 
+1

這是正確的,tnx! @gordon linoff –

0

,如果沒有rexexp_count()在你的SQL - 你可以使用這個簡單的一招:

select *, 
length(concat(First_name,Last_name))- length(substitue(concat(First_name,Last_name),'A','') as 'Acount' 
from tableName 
having Acount>10