Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как правильно написать функцию? / 5 сообщений из 5, страница 1 из 1
21.11.2019, 15:21
    #39892411
sk187
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно написать функцию?
Здравствуйте, необходимо написать функцию возвращающую число мужчин и женщин. Как я понял, скалярные функции возвращают только 1 значение, а табличные функции выводят данные из таблиц, не проводя вычислений для возвращаемой таблицы. Так какую тогда функцию использовать для подобных ситуаций, когда необходимо выводить не 1 значение.
Все находится в одной таблице, столбец "Пол" содержит либо "М" либо "Ж". Необходимо просто вывести эти два подсчитанных значения. При данном коде вернет лишь последний return. Подскажите, пожалуйста, спасибо.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ALTER function [dbo].[personal2] ()
returns float
AS
begin
declare @m float, @j float
set @m = 
(select COUNT(*) from СОТРУДНИКИ where Пол= 'М')
set @j = 
(select COUNT(*) from СОТРУДНИКИ where Пол= 'Ж')
return (@m)
return (@j)
end  
...
Рейтинг: 0 / 0
21.11.2019, 15:29
    #39892418
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно написать функцию?
sk187,

так же, только returns table
и
return (select @m m, @j j)
...
Рейтинг: 0 / 0
21.11.2019, 15:29
    #39892420
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно написать функцию?
sk187,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION dbo.F()
RETURNS TABLE
AS
RETURN
SELECT
	Male	= SUM(CASE WHEN Пол= 'М' THEN 1 ELSE 0 END),
	Female	= SUM(CASE WHEN Пол= 'Ж' THEN 1 ELSE 0 END) 
FROM СОТРУДНИКИ
GO



а returns float это если вдруг не совсем м/ж?
...
Рейтинг: 0 / 0
21.11.2019, 15:39
    #39892424
sk187
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно написать функцию?
Владислав Колосов,
Спасибо!
...
Рейтинг: 0 / 0
21.11.2019, 15:40
    #39892425
sk187
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно написать функцию?
TaPaK,
Спасибо!
float это да, на будущее)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как правильно написать функцию? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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