Sql server 如何匹配SQL Server中的两个列值
我有一个SQL Server表Sql server 如何匹配SQL Server中的两个列值,sql-server,matching,calculated-columns,Sql Server,Matching,Calculated Columns,我有一个SQL Server表Author\u Areasas: aid Category_2005...Category_2007...Category_2014 Rank -------------------------------------------------------------------- 677 8 19 0 1 677 1
Author\u Areas
as:
aid Category_2005...Category_2007...Category_2014 Rank
--------------------------------------------------------------------
677 8 19 0 1
677 11 0 0 2
677 12 0 0 3
...
...
我们如何将表Author\u area
的Category\u 2005
列(同样也包括其他列)与表CoAuthor\u area
匹配,如下所示:
co_aid Category_2005...Category_2007...Category_2014 Rank
--------------------------------------------------------------------
901706 11 5 0 1
901706 8 19 0 2
901706 12 0 0 3
...
...
值在Category_2005
中的位置(以及在其他列中)并不重要,只需检查值是否存在于目标表中,即合著者区域
,如果一个值匹配,则检查表年度作者(合著者)中列的相似性
值
(这是每年从中选取作者及其合著者的基础表)将是低值
,如果两个值匹配,则中值
,如果三个值匹配,则高值
。此外,如果没有值匹配,则偏差
然而我已经尝试过了,但没有达到预期的效果
SELECT AA.Category_2005 [Author_2005], CA.Category_2005 [CoAuthor_2005],
AA.Rank [AA_Rank], CA.Rank [CA_Rank]
FROM Author_Areas AA
JOIN CoAuthor_Areas CA ON AA.Category_2005 IN (CA.Category_2005)
WHERE CA.co_aid = (SELECT CoAuthor
FROM Yearly_Author_CoAuthors
WHERE Year = 2005 AND
Author = 677
)
AND AA.aid = 677
ORDER BY AA.Rank, CA.Rank
这将产生以下输出:
Author_2005 CoAuthor_2005 AA_Rank CA_Rank
-----------------------------------------------
8 8 1 2
11 11 2 1
12 12 3 3
而CoAuthor_2005
应为11、8、12。以及如何检查此处的所有值是否匹配,以及如何在年度作者\u CoAuthors
表的相似性
列中写入High
。(我无法排序如何计算各个列中的匹配数,然后在相似性列中写入高
、中
、低
或异常
年度作者\u合著者
表结构为:
Author CoAuthor Year Similarity
--------------------------------------
677 901706 2005 High
677 838459 2007 ???
677 901706 2007 Low
677 1695352 2007 ???
...
...
677 210628 2014 High
...
...
我在年度作者\u合著者中添加了虚拟值,因为如果所有3个值都匹配,它将是高
,如果2个值匹配,它将是中
,如果1个值匹配,它将是低
,如果没有值匹配,它将是异常的。我们如何根据需要匹配这些列?在哪里定义“低”,“中等”…在您上面的查询中?显示restrant表的结构?并定义哪个匹配将转到低、中、高等。Ajay2707我添加了结果
表结构,以及高
、中
和低
匹配的规则。这是不可理解的,最好使用实际的表名,而不是a、c、resultant。也是在结果表结构中,显示的结果列。编辑问题,因为首先用数据定义输入表列表,然后用实际名称给出查询,然后用出错的逻辑给出结果输出。然后我们可以提供帮助you@Ajay2707我已按要求添加了信息。这些信息足以进行分类吗我的问题请给出你期望的结果