Czy podczas odawania warunków w poleceniu BETWEEN <warunek1> AND <warunek2> kolejność podanych warunków ma znaczenie?
Czy podczas odawania warunków w poleceniu BETWEEN <warunek1> AND <warunek2> kolejność podanych warunków ma znaczenie?
Tak, kolejność ma znaczenie, tz. Składnia <wyrażenie_sprawdzane> BETWEEN <wyrażenie1> AND <wyrażenie2> należy (tz. MS SQL parser) tłumaczyć jako <wyrażenie_sprawdzane> >= <wyrażenie1> AND <wyrażenie_sprawdzane> <= <wyrażenie2> co oznacza, że kolejność <wyrażenie1> oraz <wyrażenie2> ma kardynalne znaczenie. Jako przykład proponuję uruchomić następujący kod:
DECLARE @Data_ALTKOM DATE = '20130701';
IF @Data_ALTKOM BETWEEN '20130801' AND '200120101' BEGIN PRINT 'Sa inni' END
ELSE PRINT 'ALtkom jest najlepszy';
GO
DECLARE @Data_ALTKOM DATE = '20130701';
IF @Data_ALTKOM BETWEEN '20130601' AND '20130801' BEGIN PRINT 'Altkom znowu wygral' END
ELSE PRINT 'Pomylilismy sie';
GO
Co jednoznacznie pokazuje iż wartości sprawdzanych wyrażeń nie są przemienne.