Ich möchte eine Lösung in T-SQL finden, die einen Weg finden könnte, eine Änderung in einer bestimmten Liste oder Datensätzen zu erkennen.Funktion zum Erkennen von Änderungen in einer geordneten Liste
Die physische Tabelle ist wie folgt:
| id |val |
|----|----|
| 1 | A |
|----|----|
| 2 | A |
|----|----|
| 3 | B |
|----|----|
| 4 | B |
|----|----|
| 5 | A |
|----|----|
| 6 | A |
|----|----|
id
ist eine sequentielle integer
val
ein willkürlicher Wert ist
Ich möchte ein berechnetes Feld hinzuzufügen, das irgendwie eine Veränderung bedeuten könnte von val
Gewünschtes Ergebnis:
| id |val | segment |
|----|----|---------|
| 1 | A | 1 |
|----|----|---------|
| 2 | A | 1 |
|----|----|---------|
| 3 | B | 2 |
|----|----|---------|
| 4 | B | 2 |
|----|----|---------|
| 5 | A | 3 |
|----|----|---------|
| 6 | A | 3 |
|----|----|---------|
Was ich versuche ist die Möglichkeit, durch „Segmente“ wie diese Gruppe zu tun:
| from_id | to_id | val |
|---------|-------|-----|
| 1 | 2 | A |
| 3 | 4 | B |
| 5 | 6 | A |
|---------|-------|-----|
Sie haben zu benutze einen cursor, ich tendiere dazu, an eine set-basierte lösung zu denken, weil ich cursors hasse, aber ich kann mir keinen einfallen lassen ... EDIT: Ich meine, du machst es wirklich ein Set-basierter Betrieb, da die Reihenfolge Ihrer Daten wichtig ist ... – kralco626
Welche Version von SQL Server verwenden Sie? – Lamak
Kann ich fragen, was Sie zu tun versuchen? Was versuchst du eigentlich zu erreichen? – kralco626