sql проблема с декларацией функции
не знаю почему подчеркивает первую линию красным. В чём может быть проблема. Помогите пожалуйста
BEGIN
CREATE FUNCTION funkcja(@p1 int = 18, @p2 int = 30)
RETURNS TABLE
AS
RETURN (SELECT * FROM Employees
WHERE DATEDIFF(year, BirthDate, getdate()) between @p1 and @p2)
GO
SELECT EmployeeID, LastName, FirstName, ROW_NUMBER(order by employyID desc) as number
FROM funkcja(default)
WHERE number % 3 = 0
order by desc
END;
GO
Ответы (1 шт):
Автор решения: Ilshat Nasyrov
→ Ссылка
Вам необходимо убрать ключевое слово BEGIN перед началом создания функции, т.к. это вызывает синтаксическую ошибку: "CREATE FUNCTION" должна быть единственной в пакете
Для вызова каждого параметра по умолчанию, необходимо передать ключевое слово DEFAULT в верхнем регистре
Код должен выглядеть следующим образом
CREATE FUNCTION funkcja(@p1 int = 18, @p2 int = 30)
RETURNS TABLE
AS
RETURN (SELECT * FROM Employees
WHERE DATEDIFF(year, BirthDate, getdate()) between @p1 and @p2)
GO
BEGIN
SELECT EmployeeID, LastName, FirstName, ROW_NUMBER(order by employyID desc) as number
FROM funkcja(DEFAULT, DEFAULT)
WHERE number % 3 = 0
order by desc
GO
END;
