SQL i funkcje

RC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

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?

Inquis1t0r
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 300
1

To czego potrzebujesz w tym przypadku to nie funkcja a stored procedure.

RC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

a czy mogę w tym również zadeklarować zmienną która trzeba podać tak jak się to w funkcji robiło?

RC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

już znalazłem odpowiedź na moje wcześniejsze pytanie :) dzięki wielkie za nakierowanie mnie :D

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

W PostgreSQL nie ma stored proc. Są funkcje, które zwracają ... void :)

RC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

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 ??

RC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

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

Kopiuj
for (int i = 0 ; i < tabela.next(); i++)
if (imie + " " + nazwisko) = ImieNazwisko
id = id (z tabeli);
RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 374
0

A musi być funkcja bo wystarczy zwykły update albo select?

Kopiuj
update tabela set id = imie || nazwisko where imie || nazwisko = :ImieNazwisko
Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
2

Przecież to WHERE trzeba dopisać, a nie żadne pętle...

RC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

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

Kopiuj
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

PD
  • Rejestracja: dni
  • Ostatnio: dni
1

@Marcin.Miga: podał odpowiedź w poście wyżej: sekcja WHERE

Kopiuj
select * from Wiadomsc where convert(date, '2019-05-20') between data_od and data_do

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.