Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пользовательская функция / 11 сообщений из 11, страница 1 из 1
13.05.2020, 13:35
    #39956815
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Есть две таблицы person and feature... нужно с помощью функции: показать партнеров из страны, заданной в качестве параметра

Поправьте функцию
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION GetCountry(@name nvarchar(15))
RETURNS nvarchar(15)
AS 
   BEGIN
       DECLARE @Country nvarchar(15)
       SELECT @Country= --вот как тут дальше
       FROM 
       RETURN @Country
   END
...
Рейтинг: 0 / 0
13.05.2020, 13:37
    #39956816
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
RumaNO
нужно с помощью функции: показать партнеров из страны, заданной в качестве параметра
А почему функция возвращает название страны?
Не сходится что то.
...
Рейтинг: 0 / 0
13.05.2020, 13:41
    #39956821
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
alexeyvg
А почему функция возвращает название страны?
Не сходится что то.

вот так?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION GetCountry(@name nvarchar(15))
RETURNS nvarchar(15)
AS 
   BEGIN
       DECLARE @FULLNAME nvarchar(15)
	   SELECT @FULLNAME= 
	   FROM Person
	   RETURN @FULLNAME
   END
...
Рейтинг: 0 / 0
13.05.2020, 13:49
    #39956827
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
RumaNO,

1. Почему функция называется getCountry, хотя получить нужно партнёров?
2. Партнёров в стране может быть больше 1, т.е. вам нужна табличная функция, а у вас скалярная.
...
Рейтинг: 0 / 0
13.05.2020, 14:07
    #39956844
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
msLex, ага, чуток понял, а как теперь передать туда страну в качестве параметра
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE FUNCTION GetPerson()
RETURNS TABLE
AS
RETURN
(
   SELECT *
   FROM Person
)
...
Рейтинг: 0 / 0
13.05.2020, 14:33
    #39956868
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
А как связать две таблицы?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION GetPerson(@Country varchar(15))
RETURNS TABLE
AS
RETURN
(
   SELECT FullName
   FROM Person AS P,Feature AS F
   WHERE P.Id_Country=F.Id --ВОТ ТУТ
)
...
Рейтинг: 0 / 0
13.05.2020, 15:17
    #39956911
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Код: sql
1.
2.
3.
4.
SELECT P.FullName
   FROM Person AS P JOIN Feature AS F
    ON P.Id_Country=F.Id 
   WHERE F.COUNTRY_NAME= 
...
Рейтинг: 0 / 0
13.05.2020, 15:29
    #39956927
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
ага, почему выводит пустую таблицу?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE FUNCTION GetPerson(@Country varchar(15))
RETURNS TABLE
AS
RETURN
(
   SELECT FullName,City
   FROM Person JOIN Feature ON Person.Id_Country=Feature.Id
   WHERE City=@Country
  
)


Вывод:
Код: sql
1.
2.
SELECT *
FROM GetPerson('Украина')
...
Рейтинг: 0 / 0
13.05.2020, 15:33
    #39956931
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Код: sql
1.
WHERE City=@Country


Мне всегда казалось, что City и Country - это разные вещи
...
Рейтинг: 0 / 0
13.05.2020, 15:36
    #39956933
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
londinium, во дурак, точно..городу присваиваю страну
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE FUNCTION GetPerson(@Country varchar(15))
RETURNS TABLE
AS
RETURN
(
   SELECT FullName,Country
   FROM Person JOIN Feature ON Person.Id_Country=Feature.Id
   WHERE Country=@Country
)

SELECT *
FROM GetPerson('Украина')
...
Рейтинг: 0 / 0
13.05.2020, 15:37
    #39956934
RumaNO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Всем спасибо за помощь
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пользовательская функция / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]