导出和导入选定的行

时间:2017-10-10 14:47:18

标签: sql sql-server import export

我想从我的数据库导出特定数据并将其导入另一个数据库表。大多数数据都在一个表中,但在其他表中还有一些其他数据。大多数其他表只有一个所需数据的记录,但有些表有多个必需的记录。 例如:

Case
------------------
ID name    status Sum 
1  first   2      854
2  second  4      NULL
3  third   6      951
4  fourth  2      1430

Payments
----------------------------
CaseID  Person  payment
1       Peter   35
1       Robert  48
3       Oscar   630
4       Rob     85
3       Oscar   130

Documents
-----------------------------
CaseId  DocTypeId  RegNr
1       3          14335
1       4          43456
1       1          34533
2       5          23454
2       3          35532

我需要导出所有没有状态为“6”的案例,我需要他们的付款和可能不止一个的文件。我可以连接表,但是那些具有多个必需记录的表将创建具有相同列数据的其他行。

With join I could get something like this
ID name   status Sum  CaseId Person payment CaseId DocTypeId RegNr
1  first  2      854  1      Peter  35      1      3         14335
1  first  2      854  1      Robert 48      1      4         43456
1  first  2      854  1      Peter  35      1      1         34533

在这里你可以看到像这样我会得到重复的数据。如何在不重复的情况下获取数据?例如,一行中的所有数据?

我不想在数据库中导入重复数据,因为这真的很糟糕。 我怎样才能做到这一点?

我试着看一些sql server possibilites但找不到我需要的东西,所以我想我需要创建自己的脚本。

1 个答案:

答案 0 :(得分:0)

我假设你在连接表输出中得到了所需的结果,除了它给你重复。您可以轻松忽略重复项,并在输出表中只插入一行。

创建一个视图,为您提供重复的排名。

CREATE view View1 as(select *,ROW_NUMBER() OVER(partition by names, status, some, person, payment Order by id) as rn from Your_join_table)

之后只需在输出表中输入等级1行

select * into output_table from View1 where rn = 1

希望它有所帮助!