당신은 소스에 해당 ID 열을 추가 할 수있을거야 가정 주문을위한 테이블과 당신의 테이블은 어떤 모습으로 보일 것입니다. 이 같은 NG는 :
CREATE TABLE Table1 (id int identity(1,1), Col1 NVARCHAR(50))
INSERT INTO Table1 (Col1)
VALUES
('Monday'),('Jon'),('Boris'),('Natalie'),
('Tuesday'),('James'),('Tom'),('Boris')
는 당신이 시도 할 수있는 사항은 다음과 같습니다 당신이 그들을 구별 할 수 있도록
- 먼저 는
- 가입 일 (다른 방법으로 수행 할 수 있습니다) 평일 임시 테이블을 만들 다시 원래 테이블에 큰 ID를 찾고 (t.ID> d1.ID)
- 방지 다음날 ID에 가야 것들 (t.ID < MIN (d2.Id))
- 합체 목록의 마지막 날에 작동하는지 확인하는 것입니다.
.
CREATE TABLE #weekDays (wd NVARCHAR(10));
INSERT INTO #weekDays
VALUES
('Monday'), ('Tuesday'), ('Wednesday'),
('Thursday'), ('Friday'), ('Saturday'), ('Sunday');
WITH CTE_Days AS
(
SELECT t.*
FROM Table1 t
INNER JOIN #weekDays wd ON wd.wd = t.col1
)
SELECT *
FROM CTE_Days d1
INNER JOIN Table1 t ON t.id > d1.id AND t.id <
COALESCE((
SELECT MIN(d2.id)
FROM CTE_Days d2
WHERE d2.id > d1.id
), t.id + 1)
'존'이 '월요일'등과 연결되는 것을 어떻게 알 수 있습니까? 테이블에 나열된 방식 때문입니까? 테이블의 데이터는 본질적으로 정렬되지 않습니다. 데이터를이 순서로 유지할 수있는 열 (ID 열)이 있습니까? – Taryn
예, 텍스트 파일 목록에서 가져 왔습니다. 그래서 월요일 아래의 모든 사람들은 월요일이고 화요일 아래의 모든 사람들은 화요일입니다. 내가 한 줄씩 순서대로 데이터를 가져 왔다고 가정하면 늘릴 수있는 ID 열과 증분 할 수 있습니다. – pugu
개인적으로, 매주 두 번째 테이블을 만들고, 모든 레코드에서 하루의 이름을 반복하는 대신, 기술 키를 제공하고, FK와 연결합니다. –