Имам данни, които идват от йерархична база данни и често има колони, които съдържат данни, които ТРЯБВА да бъдат в друга таблица, ако оригиналната база данни е била релационна.
Данните на колоната са форматирани по двойки, с LABEL\VALUE
с интервал като разделител, както следва:
LABEL1\СТОЙНОСТ LABEL2\СТОЙНОСТ LABEL3\СТОЙНОСТ
Рядко има повече от един чифт в запис, но има до три. Има 24 различни възможни етикета. В тази таблица има други колони, включително ID. Успях да конвертирам тази колона в разреден масив, без да използвам курсор, с колони за ID, LABEL1, LABEL2 и т.н....
Но това не е идеално за използване в друга заявка. Другата ми опция е да използвам курсор, да прегледам цялата таблица веднъж и да пиша във временна таблица, но не мога да го накарам да работи както искам. Успях да го направя само за няколко минути във VB.NET, използвайки няколко вложени цикъла, но не мога да го направя в T-SQL дори с помощта на курсори. Проблемът е, че ще трябва да не забравям да стартирам тази програма всеки път, преди да искам да използвам таблицата, която създава. Не е идеален.
И така, прочетох ред, разделих двойките от „LABEL1\VALUE LABEL2\VALUE LABEL3\VALUE“ в масив, след това ги разделих отново, след което написах редовете
ID, LABEL1, VALUE
ID, LABEL2, VALUE
ID, LABEL3, VALUE
и т.н...
Осъзнавам, че „разделянето“ на низовете тук е трудната част за SQL, но просто изглежда много по-трудно, отколкото трябва да бъде. какво ми липсва