select cast(de.ApprovalOrder AS VARCHAR(32))
+ cast(de.EntityCode AS VARCHAR(32))
+ isnull(cast(de.DelegationCode AS VARCHAR(32)), '') as 'RowID' ,
*
from workflow.delegation_engine de
where RowID <> NULL
Kiedy próbuję wykonać następujące otrzymuję błąd:Nie można użyć tymczasowej kolumny w klauzuli where?
Msg 207, Level 16, State 1, Line 13 Invalid column name 'RowID'.
prostu zastanawiasz się, w jaki sposób można odwołać tę kolumnę tymczasowy? Szukałem wcześniejszych postów, które sugerowały używanie "posiadania" tego, ale to też nie działa.
'<> NULL' da problemy OP. Zdaje mi się, że nie jest to zamierzona klauzula warunkowa. –
@Shark - Dziękuję, tęskniłem za tym. Błąd jest ustalony na –
+1, ponieważ opcja 3 jest bardziej praktycznym refaktorem opcji 2 i często jest bardziej użyteczną klauzulą dla optymalizatora niż opcja 1. * [Może czuć się mniej elegancko, ale kiedy daje optymalizatorowi więcej wskazówek, aby zmniejszyć plan wykonania, ma nogi, a ja lubię nogi.] * – MatBailie