【问题标题】:How to compare two columns in Excel?如何比较Excel中的两列?
【发布时间】:2016-08-02 06:09:51
【问题描述】:

我有一个这样的 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

我想将 column1 第一个值 a 与 column2 的每个值匹配。如果找到值,我想在下一列中显示一些消息,例如 Found 或突出显示值本身,然后应该在 column2 中找到值 b,依此类推。

Objective:

实际上,我在 sql 中有两个包含多个列的表,这些表也有一些公共列。我只是想找出匹配的列名。如果有人也有其他方法,请告诉我。 提前致谢。

【问题讨论】:

  • 需要在原始表上创建一个触发器,所以我需要提取两个表中的公共列名。
  • 您需要 Excel 或 SQL 中的解决方案

标签: sql-server excel excel-formula


【解决方案1】:

这样的东西应该可以在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    |
+--------+--------------+

【讨论】:

  • 它工作正常,我可以直接写 - SELECT Name FROM syscolumns WHERE id = object_id('table name') 而不是 'a' 或 'b' ?这样它就可以直接获取列名并对其执行!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
相关资源
最近更新 更多