Jeśli ta instrukcja select zwraca wiele wartości (złe na początek):
Podczas używania SELECTdo zmiennej przypisywana jest ostatnia zwracana wartość (jak powiedział womp), bez żadnego błędu lub ostrzeżenia (może to powodować błędy logiczne)
Jeśli ta instrukcja select zwraca wiele wartości: w pierwszym przypadku zmiennej jest przypisywana ostatnia zwracana wartość (jak powiedział womp), bez żadnego błędu lub ostrzeżenia (może to powodować błędy logiczne); w drugim przypadku wystąpi błąd.
W rzeczywistości nie spowoduje błędu w SQL, wybierze ostatni rekord (chociaż może powodować wynikowy błąd w aplikacji, jeśli używasz tej wartości i jest ona niepoprawna)
Select@ModelID =m.modelid
From MODELS m
Where m.areaid ='South Coast'
W takim przypadku, jeśli zwrócono dwa lub więcej wyników, wynik jest ostatnim rekordem. Pamiętaj o tym, jeśli możesz zwrócić jeszcze dwa rekordy, ponieważ możesz nie zobaczyć oczekiwanego wyniku.
Poniżej kwerendy szczegółowo zalety i wady każdego z nich:
-- First way, DECLARE@test int =(SELECT1),@test2 int =(SELECT a from(values(1),(2)) t(a))-- throws error-- advantage: declare and set in the same place-- Disadvantage: can be used only during declaration. cannot be used later-- Second wayDECLARE@test int
,@test2 int
SET@test =(select1)SET@test2 =(SELECT a from(values(1),(2)) t(a))-- throws error-- Advantage: ANSI standard. -- Disadvantage: cannot set more than one variable at a time-- Third wayDECLARE@test int,@test2 int
SELECT@test =(select1),@test2 =(SELECT a from(values(1),(2)) t(a))-- throws error-- Advantage: Can set more than one variable at a time-- Disadvantage: Not ANSI standard
Aby przypisać zmienne za pomocą SQL, wybierz najlepszą praktykę, jak pokazano poniżej
->DECLARE co_id INT ;->DECLARE sname VARCHAR(10);->SELECT course_id INTO co_id FROM course_details ;->SELECT student_name INTO sname FROM course_details;
JEŚLI musisz przypisać więcej niż jedną zmienną w jednym wierszu, możesz użyć tego samego WYBIERZ W
->DECLARE val1 int;->DECLARE val2 int;->SELECT student__id,student_name INTO val1,val2 FROM student_details;--HAPPY CODING--
JEŚLI masz więcej niż jedną kolumnę do wyboru z tabeli, możesz łatwo przypisać ją za pomocą pojedynczej instrukcji SELECT INTO zamiast powtarzania kodu !!
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.