我有一个表,其中包含一个名为 ExcelLinks 的列,其中包含如下记录:
=INDEX('\\san1\engData[BT_500.0_Structural_Position.xls]混凝土'!$B$4:$IK$83,MATCH($K$9,'\\san1\engData[BT_500.0_Structural_Position.xls]混凝土'!$ A$4:$A$83,0),MATCH(C212,'\\san1\engData[BT_500.0_Structural_Position.xls]混凝土'!$B$3:$IK$3,0))/1000000
=INDEX('\\san1\engData[GK_600.0_Pumps.xls]Pumps'!$B$4:$BD$39,MATCH($K$9,'\\san1\engData[TT_640.0_Generator.xls]Generator'!$ A$4:$A$39,0),MATCH(C214,'\\san1\engData[GK_600.0_Pumps.xls]Pumps'!$B$3:$BD$3,0))/1000000
=INDEX('\\san1\engData[TT_640.0_Generator.xls]Generator'!$B$4:$HU$83,MATCH($K$9,'\\san1\engData[GK_600.0_Pumps.xls]Pumps'!$ A$4:$A$83,0),MATCH(C218,'\\san1\engData[TT_640.0_Generator.xls]Generator'!$B$3:$HU$3,0))/1000000
理想的输出是:
_______________________________________
| Row | LinkCount | UniqueLinkCount |
| 1 | 3 | 1 |
| 2 | 3 | 2 |
| 3 | 3 | 2 |
我想查询这些数据并查看每条记录使用的文件数和唯一文件数。
我在网上进行了搜索,找不到任何这样做的东西。
我想我会做一个游标,对于每条记录,我会检测以开头\\
和结尾的字符'!$
并计算文件数。
困难的一点是 ExcelLinks=INDEX
和MATCH
使用多个链接(可能是不同的文件)的函数。
该表中有超过 1200 万条记录,因此我担心使用游标的性能。
使用 RegEx 的 Oracle有一些更好的方法可以做到这一点。我知道 SQL Server 没有 RegEx,如果这是最简单的选择,我愿意编写/使用 CLR 存储过程。