У меня есть вопрос о выборе групп, и каждая группа ГДЕ по «Данные1», если не существует, ГДЕ по «НОЛЬ или пусто», иначе не отображается
Пример:
Table T1 Table when data='00001' Table when data='00002' Table when data=''
Col1 Col2 Col1 Col2 Col1 Col2 Col1 Col2
A 00001 A 00001 A NULL A NULL
A NULL B 00001 B 00002 B NULL
B 00002 C 00001 D NULL D NULL
B 00001 D NULL E 00002 E NULL
B NULL E NULL
C 00001
D NULL
E 00002
E NULL
Моя идея - выбрать таблицу, в которой данные и объединение с таблицей выбора, где Col2 = null, а Col1 не в первом выборе
WITH T1 AS
(
SELECT * FROM Table WHERE Col2='00001'
)
SELECT * FROM T1
UNION
SELECT * FROM Table T2
WHERE T2.Col1 NOT IN (SELECT Col1 FROM T1) AND ISNULL(T2.Col2,'')=''
но если у меня 30 тысяч записей, это слишком медленно