In een oud CRM systeem kunnen klantmanagers metadata aan users toevoegen door tags te schrijven in een freetext comment field:
Ik wil deze data opvragen, parsen en in een #temp table stoppen, als volgt:
Verduidelijking van de situatie aan de hand van bovenstaand voorbeeld:
Maar hier loop ik vast. Hoe vul ik deze table?
code:
1
2
3
4
| id username comment ---------------------------------------------------------------- 1 peter [afdeling:A] [allergie:Noten] [geslacht:Man] 2 mieke [afdeling:B] [geslacht:Vrouw] |
Ik wil deze data opvragen, parsen en in een #temp table stoppen, als volgt:
code:
1
2
3
4
| id username afdeling allergie geslacht ------------------------------------------------- 1 peter A Noten Man 2 mieke B NULL Vrouw |
Verduidelijking van de situatie aan de hand van bovenstaand voorbeeld:
- Het aantal [tag:]s per user kan verschillen
- Niet alle users hebben dus alle [tag:]s
- Het is prima om een aantal [tag:]s te hardcoden. Code hoeft niet dynamisch alle tags op te pakken. Ik ben daarom begonnen met de definitie van de temp table:
SQL:
1
2
3
4
5
6
7
8
| create table #users ( id int identity , username nvarchar(50) , afdeling nvarchar(50) , allergie nvarchar(50) , geslacht nvarchar(1) ) |
Maar hier loop ik vast. Hoe vul ik deze table?
- Met een sequentie van replaces en substrings zoeken naar de value (wordt al snel onoverzichtelijk)
- Met een aparte functie?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."