如何找到表1中表1中记录的所有实例?

时间:2011-05-30 18:22:13

标签: sql-server-2008

首先,我正在使用SQL Server 2008 R2,而且我只使用它2周,编程知识有限。我需要做的是在表2(t1)中找到表1(t1)中记录的所有实例,并将它们输出到多个表(每个t2.c1-c25有1个输出表)。我目前在dos中使用concatenate和find来做这个,但我知道在SQL中必须有更好的方法。

以下是每个表的基本细节:

  • t1包含1列(t1.c1)
  • t1.c1有100,000条记录(行)
  • t2有25列
  • t2有250,000条记录(行)

例如,t1.c1中的记录(行)1是单词“dog”,我想知道t2.c1中出现的单词“dog”,并将整个记录与关键字一起输出到t3 “狗”。然后t3看起来像这样:

t3.c1 =狗 t3.c2-c28 =具有匹配数据的行 等...

最终我最终会得到包含t2.c2到t1.c1中所有匹配项的t3。然后重复该过程以匹配t1.c1到t2.c2,t1.c1到t2.c3到t2.c25,每个都在它自己的输出表(t3-t28)中。

任何帮助将不胜感激,我可以澄清是否有任何问题!

1 个答案:

答案 0 :(得分:0)

这是一个加入

SELECT
   t1.c1, t2.c2, ..., t2.c28
FROM
   t1
   JOIN
   t2 ON t2.c1 LIKE '%' + t1.c1 + '%'

警告:

  • 这将运行得很糟糕(与领先的通配符相似)
  • 如果t1.c1具有'rat'且t2.c1具有'scratch'
  • ,则匹配

您希望完全匹配,然后您需要ON t2.c1 = t1.c1

如果您想要“编号”“虚拟”表格,请将其添加到SELECT

DENSE_RANK() OVER (ORDER BY t1.c1) AS Virtualtable