Poszukuję sposobu budowania instrukcji case w zapytaniu sql select przy użyciu znaków mniejszych i większych niż. Na przykład, chcę, aby wybrać pozycję na podstawie zmiennej:Stosowanie znaków porównania wewnątrz instrukcji sql case
DECLARE @a INT
SET @a = 0
SELECT CASE
WHEN @a < 3 THEN 0
WHEN @a = 3 THEN 1
WHEN @a > 3 THEN 2
END
Chciałbym napisać go jako:
DECLARE @a INT
SET @a = 0
SELECT CASE @a
WHEN < 3 THEN 0
WHEN 3 THEN 1
WHEN > 3 THEN 2
END
... ale SQL nie pozwala mi korzystać z < i> znaki w ten sposób. Czy istnieje sposób, że mogę to zrobić to SQL 2005, czy też muszę użyć kodu jak w pierwszym.
Powodem, dla którego chcemy kodu tylko raz, jest to, że sprawiłoby, że kod byłby dużo czytelniejszy/łatwiejszy w utrzymaniu, a także dlatego, że nie jestem pewien, czy SQL Server będzie musiał wykonać obliczenia dla każdej instrukcji CASE.
Czekam na VB.NET case equivelent:
Select Case i
Case Is < 100
p = 1
Case Is >= 100
p = 2
End Select
Może nie jest to możliwe w SQL i to jest ok, po prostu chcę, aby to potwierdzić.
Opcja 'CASE' działa jak liter lub przejść w większości innych języki programowania. Nie widzę sensu twojej potrzeby. –
Przepraszam, koniec mojego pytania został przerwany. Daj mi znać, jeśli nadal nie rozumiesz, co próbuję osiągnąć. – Greg
Wyrażenie CASE spowoduje zwarcie i oceni sprawy tylko do momentu, gdy jedna z nich jest prawdziwa. Nie sądzę, że jest jakaś korzyść z innego podejścia. –