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

我有一个SQL Server表
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我已按要求添加了信息。这些信息足以进行分类吗我的问题请给出你期望的结果