2016-08-02 112 views
0

我有一个excel工作表所示:如何比较Excel中的两列?

column1  column2 
a   b 
b   w 
c   a 
d   c 
e   z 
f   k 
g   t 
h   y 
i   j 
j   d 
k   e 
l   f 

和我要匹配的列1第一值一个与每列2的每个值。如果发现值,我想在下一列中显示一些消息,如发现或突出显示值本身,然后值b应在第2列中找到依此类推。

Objective: 

实际上,我有两个sql表中有多个列,这些表也有一些共同的列also.I只是想找出匹配的列名称。如果有人也有其他方式,请让我知道。 在此先感谢。

+0

XY问题...... –

+0

需要创建原始表的触发器,让我需要提取两个表中的公共列名称。 – Mogli

+0

你需要在Excel或SQL的解决方案 – vanathaiyan

回答

0

像这样的东西应该在SQL Server

;with cte as 
(
SELECT * 
FROM (VALUES ('a','b'), 
       ('b','w'), 
       ('c','a'), 
       ('d','c'), 
       ('e','z'), 
       ('f','k'), 
       ('g','t'), 
       ('h','y'), 
       ('i','j'), 
       ('j','d'), 
       ('k','e'), 
       ('l','f')) tc (column1, column2) 
) 
SELECT column1, 
     CASE 
     WHEN EXISTS (SELECT 1 
         FROM cte b 
         WHERE a.column1 = b.column2) THEN 'Found' 
     ELSE 'Not Found' 
     END AS Identifier 
FROM cte a 

结果工作:

+--------+--------------+ 
|column1 | Identifier | 
+--------+--------------+ 
| a  | Found  | 
| b  | Found  | 
| c  | Found  | 
| d  | Found  | 
| e  | Found  | 
| f  | Found  | 
| g  | Not Found | 
| h  | Not Found | 
| i  | Not Found | 
| j  | Found  | 
| k  | Found  | 
| l  | Not Found | 
+--------+--------------+ 
+0

它工作正常,我可以直接写入 - 选择名称从syscolumns WHERE id = object_id('表名')而不是'a'或'b'?所以它会直接获取列名并且会在那里执行! – Mogli