如何使用Index组合SQL SERVER中2个表的数据

时间:2017-06-09 13:21:23

标签: sql tsql join indexing

我有2个表,一个包含客户列表(t_client)及其唯一ID,另一个包含促销代码列表(t_promo_code)。 我为这两个数据表创建了索引:idx_client; idx_code,我想加入这两个表,以便每个客户都可以有促销代码。

我想在SQL服务器中应该有这样的东西吗?

Select @row_index := @row_index +1 as index

然而,我找不到任何东西......我真的不熟悉Index。如果我可以将索引转换为列,那将更容易,但我也不知道如何做到这一点。 我只找到了这样一个选择句子:

knitr::opts_chunk$set(fig.align = "center")

但它似乎只适用于MYSQL,而我使用的是SQL SERVER 2008。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

很抱歉,如果我没说清楚的话。我很难加入这两个表,因为表t_promo_code没有任何匹配t_client的列。

因此,我正在考虑使用INDEX为他们生成共享密钥。但是,我刚刚找到另一个解决方案,即使用Row_number而不是Index。

最后,我使用了以下SQL,它可以工作!

Select Email, 'test_campaign' AS Campaign, GEtDATE() AS DATE, Code
from(
SELECT Code, row_number() over (order by code) as row_num
FROM [t_promo_code])A
join
(SELECT Email, row_number() over (order by Email) as row_num
FROM [t_client])B
on  A.row_num=B.row_num
ORDER BY A.Code,B.Email