Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
SpiritAbsolute
4 / 4 / 1
Регистрация: 07.08.2013
Сообщений: 75
1

Входные параметры с перечислением

06.09.2013, 12:41. Просмотров 830. Ответов 7
Метки нет (Все метки)

Привет всем! Нужно сделать процедуру с входными параметрами , с такой задачей.
Например: id дома может быть null, если null тогда для всех; если id несколько - то id перечисляются через запятую.
подскажите как это реализовать. как объявить.

Добавлено через 27 минут
Входные параметры пользователь может перечислять через запятую. То есть их может быть несколько.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 12:41
Ответы с готовыми решениями:

Входные параметры NULL
Привет! В процедуре есть 4 входных параметра Id , которые могут быть NULL, и если NULL то тогда...

Исходные, входные и выходные данные
Друзья мне нужна Ваша помощь,почему у меня неувязки в исходных,входных и выходных данных? Вроде бы...

Входные параметры
Помогите за плюсик: использовать входные параметры функций со способом передачи данных “по...

Входные параметры запроса
Нужно сделать запрос, по полям из формы. Но проблема в том, что если поле пустое, запрос не выводит...

Входные и выходные параметры функции
Здравствуйте! Пытаюсь разобраться в объявлении функции, подскажите пожалуйста, если у меня есть...

7
ЕвгенийА
8 / 8 / 1
Регистрация: 27.06.2013
Сообщений: 46
06.09.2013, 13:36 2
объявить параметр id типом varchar
далее в теле процедуры распарсить с помощью строковых функций
1
SpiritAbsolute
4 / 4 / 1
Регистрация: 07.08.2013
Сообщений: 75
06.09.2013, 13:59  [ТС] 3
о как , интересно. можешь чуток поподробнее? получается как бы строковой массив.
T-SQL
1
2
3
4
5
6
7
ALTER procedure [dbo].[provision_of_services]
 
@Date datetime,
@SettlementID varchar,
@StreetsID varchar,
@HousesID varchar,
@ServicesID varchar
а как их потом потрошить ? : )
0
ЕвгенийА
8 / 8 / 1
Регистрация: 27.06.2013
Сообщений: 46
06.09.2013, 15:37 4
USE tempdb
GO
DECLARE @a VARCHAR(100)
SET @a = '1, 2, 3 ,4 ,5 '

DECLARE @t TABLE (id int)

WHILE CHARINDEX(',',@a) != 0
BEGIN
SET @a = RTRIM(LTRIM(@a))
INSERT INTO @t
SELECT CAST(SUBSTRING(@a,0,CHARINDEX(',',@a)) as int)

SELECT @a = RIGHT(@a,LEN(@a)-CHARINDEX(',',@a))
END

INSERT INTO @t SELECT CAST(NULLIF(@a,'') as int)

SELECT id FROM @t
1
SpiritAbsolute
4 / 4 / 1
Регистрация: 07.08.2013
Сообщений: 75
06.09.2013, 16:01  [ТС] 5
класс! спасибо большое! ты крут : )
0
ЕвгенийА
8 / 8 / 1
Регистрация: 27.06.2013
Сообщений: 46
06.09.2013, 16:11 6
вместо NULLIF(@a,'') можно использовать другие конструкции для обработки пустых значений, тут уж какую логику ты закладываешь
0
invm
2131 / 1398 / 447
Регистрация: 02.06.2013
Сообщений: 3,514
06.09.2013, 16:11 7
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
declare @s varchar(max) = '125,2,3,678,9, -7';
 
with t as
(select @s + ',' as source),
x as
(
 select
  cast(1 as bigint) as s, charindex(',', source, 1) - 1 as l, source
 from
  t
 
 union all
 
 select
  a.v as s, charindex(',', x.source, a.v) - a.v as l, x.source
 from
  x cross apply
  (select x.s + x.l + 1) a(v)
 where
  charindex(',', x.source, a.v) > 0
)
select cast(substring(source, s, l) as int) from x;
1
SpiritAbsolute
4 / 4 / 1
Регистрация: 07.08.2013
Сообщений: 75
06.09.2013, 16:18  [ТС] 8
что бы я без вас делал
я тут по руководство tsql кен хендерсона с помощью курсора пытался, не получалось ...
0
06.09.2013, 16:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2013, 16:18

Входные и выходные параметры процедуры в IBExpert
Здравствуйте! Подскажите пожалуйста, куда входят входные параметры процедуры в IBExpert? И куда...

Запретить изменять входные параметры в методе
Добрый день, задался вопросом, а возможно ли запретить изменять входные параметры в методе?...

Нужно ли постоянно проверять входные параметры
После языков со строгой типизацией, не могу понять дао питона. сейчас я постоянно проверяю в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru