[MSSQL] Jak przyspieszyć case when

0

Cześć, mam sobie widok, który zwraca mi następujące kolumny:
employeeID, IDInDevice, name, date, time, isOut.

Widok sam w sobie działa szybko.

Natomiast, gdy wykonuję takie zapytanie:

select employeeID, idInDevice, name, date, 
     (case when isOut = 0 then [time] else null end) as [in], 
     (case when isOut = 1 then [time] else null end) as out
from V_EventsToCorrect

to trwa ono 26 sekund(zwraca 13 tysięcy rekordów z hakiem).

Jeśli umieszczam case w widoku, wtedy wykonanie widoku też tyle trwa.
Tak więc, czy jest opcja rozwiązania tego problemu w inny sposób? Żeby było szybko? :)

W końcowym efekcie chcę uzyskać coś takiego, że jeśli dany rekord ma pole isOut o wartości 0 to wtedy pole time ma się znaleźć w kolumnie in, a w out ma być null. I na odwrót.

0

W gridzie zmieniaj isOut na napis 'in'/'out' w zależności od wartości, a time wrzuć do jednej kolumny. Pozbędziesz się dwóch case i będziesz posiadał informację o tym czy to jest in czy out...

select employeeID, idInDevice, name, date, time, isOut
from V_EventsToCorrect

1 użytkowników online, w tym zalogowanych: 0, gości: 1