2015-01-09 95 views
-1

我是新來的論壇和SQL,我希望這將是一個容易回答的問題。我正在使用Oracle數據庫,我希望通過僅搜索公司名稱字符串中的前10個字符來在表中搜索重複的公司。根據PL/SQL中字符串的前n個字符查找重複項

例如:如果我有'ABC Corp''ABC Co''ABC Corporation'我的表中單獨列出,我希望能夠尋找'ABC C',並擁有所有公司退回。由於我正在查找重複項,因此我只想返回子字符串多次出現的結果。它似乎應該很容易,但我無法讓它工作。

有什麼建議嗎?

感謝

+1

爲什麼你認爲你需要一個存儲過程? – 2015-01-09 22:53:20

+0

你寫了「我無法工作」。 StackOverflow是關於幫助人們解決他們的代碼問題,而不是給他們成品。你應該更新你的問題,最好的嘗試解決問題,並描述你目前得到的輸出。在每行的前面使用4個空格,以使其格式與代碼/數據一樣正確。祝你好運。 – shellter 2015-01-09 23:21:54

回答

1

這讓你出現多次表中的所有字符串的列表:

select 
    substr(name, 0, 6), 
    count(substr(name, 0, 6)) 
from test 
group by substr(name, 0, 6) 
having count(substr(name, 0, 6)) > 1 

,這將返回其子出現的公司名單不止一次:

select 
    name 
from test test1 
where (
    select count(*) 
    from test 
    where substr(test.name, 0, 6) = substr(test1.name, 0, 6)) > 1 
相關問題