У меня есть таблица с колонкой под названием ExcelLinks а, содержащую запись, как это:граф общие и уникальные имена файлы, встроенные в строке
= ИНДЕКС («\\ 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] Concrete '$ B $ 3: $ IK $ 3,0))/1000000
= ИНДЕКС (' \\ san1 \ engData [GK_600.0_Pumps.xls] Насосы $! B $ 4: $ BD $ 39, MATCH ($ K $ 9, '\\ san1 \ engData [TT_640.0_Generator.xls] Генератор' $ A $ 4: $ A $ 39,0), MATCH (C214, '\\ san1 \ engData [GK_600.0_Pumps.xls] Насосы $ B $ 3: $ BD $ 3,0))/1 000000
= ИНДЕКС ('\\ san1 \ engData [TT_640.0_Generator.xls] Генератор' $ 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] Генератор '! $ B $ 3: $ HU $ 3,0))/1000000
идеальный выход будет:
_______________________________________
| Row | LinkCount | UniqueLinkCount |
| 1 | 3 | 1 |
| 2 | 3 | 2 |
| 3 | 3 | 2 |
Я хочу запросить эти данные и увидеть количество файлов и уникальных файлов, используемых в записи.
Я сделал поиск в Интернете и не нашел ничего, что бы это делало.
Я думаю, что сделаю курсор, и для каждой записи я обнаруживаю символы, начинающиеся с \\
и заканчивающиеся на '!$
, и подсчитывают количество файлов.
Жесткий бит - это ExcelLinks с функциями =INDEX
и MATCH
, которые используют несколько взаимосвязей (это могут быть разные файлы).
В этой таблице содержится более 12 миллионов записей, поэтому меня беспокоит производительность с помощью курсора.
Есть несколько лучших способов сделать это с помощью Oracle using RegEx's. Я знаю, что у SQL Server нет RegEx и я готов написать/использовать хранимую процедуру CLR, если это самый простой вариант.
По существу, каждый раз, когда вы видите \\, который считается файлом? SQL Server не поддерживает RegEx изначально, но вы можете реализовать его с помощью CLR (и вам, конечно, не нужен курсор для этого в любом случае). –
Спасибо @Aaron, я попытался прояснить то, что хочу, и я не думаю, что смог бы его подсчитать количество '\\'. –