Query:
UPDATE t
SET [Start/End] = CASE WHEN t1.ID is null or t2.ID is null
THEN 1
WHEN t.RecordID <> t1.RecordID OR t.RecordID <> t2.RecordID
THEN 1 END
FROM Table1 t
LEFT JOIN Table1 t1
ON t1.ID = t.ID - 1
LEFT JOIN Table1 t2
ON t2.ID = t.ID + 1
Result:
| ID | RECORDID | TIME | START/END |
|----|----------|----------|-----------|
| 1 | 1111 | 09:00:10 | 1 |
| 2 | 1111 | 09:00:12 | (null) |
| 3 | 1111 | 09:01:10 | (null) |
| 4 | 1111 | 09:02:30 | 1 |
| 5 | 9999 | 10:00:10 | 1 |
| 6 | 9999 | 10:01:22 | (null) |
| 7 | 9999 | 10:03:10 | 1 |
| 8 | 7777 | 10:20:10 | 1 |
| 9 | 7777 | 10:21:10 | (null) |
| 10 | 7777 | 10:24:10 | 1 |
| 11 | 1111 | 14:20:10 | 1 |
| 12 | 1111 | 14:21:10 | (null) |
| 13 | 1111 | 14:24:10 | 1 |
EDIT
New Query: SQLFIDDLEExample
;WITH CTE AS (
SELECT *,
ROW_NUMBER()OVER(ORDER BY ID) rnka
FROM Table1)
UPDATE t
SET [Start/End] = CASE WHEN t1.ID is null or t2.ID is null
THEN 1
WHEN t.RecordID <> t1.RecordID OR t.RecordID <> t2.RecordID
THEN 1 END
FROM CTE t
LEFT JOIN CTE t1
ON t1.rnka = t.rnka - 1
LEFT JOIN CTE t2
ON t2.rnka = t.rnka + 1
Result:
| ID | RECORDID | TIME | START/END |
|----|----------|----------|-----------|
| 1 | 1111 | 09:00:10 | 1 |
| 5 | 1111 | 09:00:12 | (null) |
| 13 | 1111 | 09:01:10 | (null) |
| 24 | 1111 | 09:02:30 | 1 |
| 27 | 9999 | 10:00:10 | 1 |
| 29 | 9999 | 10:01:22 | (null) |
| 30 | 9999 | 10:03:10 | 1 |
| 38 | 7777 | 10:20:10 | 1 |
| 59 | 7777 | 10:21:10 | (null) |
| 60 | 7777 | 10:24:10 | 1 |
| 71 | 1111 | 14:20:10 | 1 |
| 72 | 1111 | 14:21:10 | (null) |
| 75 | 1111 | 14:24:10 | 1 |