w PL/SQL można to zrobić:
function user_exists (p_user_id users.user_id%type) return boolean
is
l_count integer;
begin
select count(*)
into l_count
from users
where user_id = p_user_id;
return (l_count > 0);
end;
To będzie następnie wykorzystywane w wywołanie PL/SQL tak:
if user_exists('john') then
dbms_output.put_Line('John exists');
end if;
UWAGA: Kiedyś count (*) w zapytaniu, wiedząc, że będzie to tylko powrót 1 lub 0 w przypadku pierwotnego poszukiwaniu kluczy. Gdyby mógł tam być więcej niż jeden wiersz to bym dodać „i rownum = 1” do kwerendy do uniknięcia niepotrzebnego liczenia wiele rekordów tylko aby dowiedzieć się, jeśli w ogóle istnieje:
function user_has_messages (p_user_id users.user_id%type) return boolean
is
l_count integer;
begin
select count(*)
into l_count
from messages
where user_id = p_user_id
AND ROWNUM = 1;
return (l_count > 0);
end;
Pożądany STRING wyjście "TAK" lub "NIE" I user_id jest numeryczna – Matt
Jeśli chcesz powrócić ciąg znaków, a następnie edytować swoje pytanie zgodnie do tego. Ciąg znaków oznaczający "TAK" lub "NIE" nie jest tym samym, co powracająca prawda lub fałsz, która byłaby wartością logiczną. – Pere