Witam, mam pytanie czy jest możliwość pisania funkcji która nic nie zwraca? a np wykonuje update? w javie jest to void a czy coś podobnego jest w sql serwer?
To czego potrzebujesz w tym przypadku to nie funkcja a stored procedure.
a czy mogę w tym również zadeklarować zmienną która trzeba podać tak jak się to w funkcji robiło?
już znalazłem odpowiedź na moje wcześniejsze pytanie :) dzięki wielkie za nakierowanie mnie :D
W PostgreSQL nie ma stored proc
. Są funkcje, które zwracają ... void
:)
mam tabele id, imie, nazwisko i tworze procedure ktora dostaje za parametr ImieNazwisko. Jak napisać pętle (while) żeby sprawdziło mi, gdy imie + nazwisko = ImieNazwisko żeby przypisało mi do tego id ??
chodzi o to zeby przeszlo mi po calej tabeli ktora ma imie i nazwisko, i jezeli znajdzie osobe ktora nazywa sie tak samo jak osoba podana w parametrze to zeby wyznaczylo mi jakie id ma dana osoba.
tak mniej wiecej bym to mial w javie ale potrzebuje to miec w sql
for (int i = 0 ; i < tabela.next(); i++)
if (imie + " " + nazwisko) = ImieNazwisko
id = id (z tabeli);
A musi być funkcja bo wystarczy zwykły update albo select?
update tabela set id = imie || nazwisko where imie || nazwisko = :ImieNazwisko
Przecież to WHERE trzeba dopisać, a nie żadne pętle...
jeśli mam tabele z id_wiadomosci, imie, nazwisko, data_od, data_do to jak mam wyswietlic te rekordy ktore zawieraja jakas konkretna date (np. 2019-05-20)??
mam taki kod ale działa on jedynie wtedy gdy podam konkretna wartosc id_wiadomosci a chciałbym żeby przeskoczyło mi to po wszystkich wiadomosciach
declare @first_day as date
declare @last_day as date
set @first_day = (select data_od from Wiadomosc where ID_wiadomosci = 3 )
set @last_day = (select data_do from Wiadomosc where ID_wiadomosci = 3 )
while @first_day <= @last_day
begin
select @first_day
set @first_day = DATEADD(D, 1, @first_day)
end
@Marcin.Miga: podał odpowiedź w poście wyżej: sekcja WHERE
select * from Wiadomsc where convert(date, '2019-05-20') between data_od and data_do