小编Hem*_*dia的帖子

sql排名只有连续的行

我有一个查询,我在3列的基础上排名行.我成功地这样做了,除了如果任何行在这3列中包含相同的数据,即使它在输出中不连续,它也会给它下一个等级.我希望如果任何行匹配这些列中的数据,只有当它在连续的行中时才应该给出下一个等级,如果不是那么它应该再次给它排名为1.我尝试了以下代码:

  SELECT DISTINCT DENSE_RANK () OVER (PARTITION BY Patient_ID, 
                                                 Opnametype, 
                                                 afdelingscode ORDER BY  Patient_ID, Opnamenummer, SPECIALISMEN, Opnametype, OntslagDatumTijd) AS rnk, 
                *
  FROM t_opnames
  ORDER BY Patient_ID, Opnamenummer, SPECIALISMEN, Opnametype, OntslagDatumTijd
Run Code Online (Sandbox Code Playgroud)

它输出为:

rnk Opnamenummer Patient_ID afdelingscode     Opnametype   Specialismen  OntslagDatumTijd ...
1   2983800      100006     RD8-GH MAU        Inpatient-E  GM            2014-09-01 14:50:00.000
2   2983800      100006     RD8-GH MAU        Inpatient-E  GM            2014-09-02 19:32:00.000
1   2983800      100006     RD8-GH Ward 08    Inpatient-E  GM            2014-09-03 17:12:00.000  
1   2983800      100006     RD8-GH Endo       Inpatient-E  GM            2014-09-09 09:06:00.000
2   2983800      100006     RD8-GH …
Run Code Online (Sandbox Code Playgroud)

sql-server rows continuous rank sql-server-2008

5
推荐指数
1
解决办法
834
查看次数

从 C# SQLCLR 存储过程批量插入 SQL 表的最快方法

我有一个 C# SQLCLR 存储过程,其中首先将数据填充到一些字典中并进行计算,然后将输出存储在其他一些字典中。

由于使用了字典,该计算完成得非常快,并且完全证明了我需要使用 CLR 存储过程而不是普通的 SQL 存储过程。

然而,我必须将这些输出字典中的数据保存在 SQL 中的某些表中,这部分花费了很多时间,并且满足了我对整个 SQLCLR 过程更快的需求。

我必须迭代每个输出字典的每个键,然后必须创建插入查询,然后必须按以下方式运行 ExecuteNonQuery: 在此输入图像描述

那么我该如何改进我的这种方法,以便在插入数据时不需要花费时间。我无法使用SqlBulkCopy,因为它不接受进程内上下文连接(即"Context Connection = true;")作为连接字符串。那么还有其他更快的方法可用吗?提前致谢。

c# sql-server import sqlclr sql-server-2008

3
推荐指数
1
解决办法
5155
查看次数

标签 统计

sql-server ×2

sql-server-2008 ×2

c# ×1

continuous ×1

import ×1

rank ×1

rows ×1

sqlclr ×1