2016-01-06 21 views
0

我最近安裝了SQL Developer的一個實例主數據服務,我現在可以運行下面的查詢時在SQL工作室經理選擇了MDS數據庫:標量值的功能 - 產出表

SELECT mdq.Similarity(N'Alexia Geogio', N'Alexandra George', 0, 0.0, 0.0); 

現在,請參閱下面的DDL:

create table #Person (ID int not null identity, Name varchar(100), primary key (ID)) 
INSERT INTO #Person (Name) values ('Alexia Geogio') 
INSERT INTO #Person (Name) values ('Alexandra George') 
INSERT INTO #Person (Name) values ('Ian') 
INSERT INTO #Person (Name) values ('Iain') 

是否有可能得到這樣的輸出與SQL語句(三列):

Alexia Geogio Alexandra George 0.5625 
Alexandra George Alexia Geogio 0.5625 
Ian Iain 0.75 
Iain Ian 0.75 

mdq.Similarity是任何人不知道的標量值函數。

我相信,因爲它不是一個表值函數,所以我無能爲力。

+0

你是如何打算的錶行與本身?它總是第1和第3,第2和第4行等,或者你想比較每一行與其他_other_行(例如也有一個結果爲'Alexia Geogio Ian'? –

回答

2

我覺得這樣的查詢你想要做什麼:

select name1, name2, similarity 
from (select p1.name as name1, p2.name as name2, 
      mdq.Similarity(p1.name, p2.name, 0, 0.0, 0.0) as similarity 
     from #person p1 cross join 
      #person p2 
    ) pp 
where similarity > @SimilarityLimit -- perhaps 0 
order by similarity; 
+0

謝謝。這基本上是我在找的東西。錯字:pt1。 – w0051977