У меня есть таблица что-то вроде
EMPLOYEE_ID DTL_ID COLUMN_A COLUMN_B
---------------------------
JOHN 0 1 1
JOHN 1 3 1
LINN 0 1 12
SMITH 0 9 1
SMITH 1 11 12
Это означает, что для каждого человека будет одна или несколько записей с различными значениями DTL_ID
(0, 1, 2 и т. Д.).
Теперь я хотел бы создать инструкцию T-SQL для извлечения записей с EMPLOYEE_ID
и DTL_ID
.
Если указанный DTL_ID
НЕ найден, будет возвращена запись с DTL_ID=0
.
Я знаю, что могу достичь этого различными способами, например, проверить, существует ли строка сначала через EXISTS
или COUNT(*)
, а затем получить строку.
Однако я хотел бы знать другие возможные способы, потому что этот оператор поиска очень распространен в моем приложении, и в моей таблице сотни тысяч строк.
В вышеупомянутом подходе мне пришлось извлекать дважды, даже если существует запись с указанным DTL_ID
, и я хочу избежать этого.