Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / t-SQL, создание функции возвращающей таблицу в зависимости от параметра / 21 сообщений из 21, страница 1 из 1
07.11.2013, 16:07
    #38456422
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Здравствуйте,

хочу создать функцию аля

CREATE FUNCTION dbo.testf (@x int)
RETURNS TABLE
AS
RETURN
(
IF @X=1
SELECT * FROM T1
IF @X=2
SELECT * FROM T2
);


возможно ли такое? если да, то как?
...
Рейтинг: 0 / 0
07.11.2013, 16:09
    #38456424
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Если структура обоих резалтсетов одинакова, то можно. BOL->Multistatement Table-valued Functions
...
Рейтинг: 0 / 0
07.11.2013, 16:10
    #38456427
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10s, например

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION dbo.testf (@x int)
RETURNS TABLE
AS
RETURN
(	
SELECT a FROM T1 WHERE @x = 1
UNION ALL
SELECT a FROM T2 WHERE @x = 2
);
...
Рейтинг: 0 / 0
07.11.2013, 16:11
    #38456429
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
pkarklinЕсли структура обоих резалтсетов одинакова, то можно. BOL->Multistatement Table-valued Functions

структура результата будет разной :(
...
Рейтинг: 0 / 0
07.11.2013, 16:11
    #38456430
Гость333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION dbo.testf (@x int)
RETURNS TABLE
AS
RETURN
( 
	SELECT * FROM T1 WHERE @X = 1
    UNION ALL
	SELECT * FROM T2 WHERE @X = 2
)
...
Рейтинг: 0 / 0
07.11.2013, 16:17
    #38456441
Гость333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sструктура результата будет разной :(
Мда... тогда давайте с самого начала, для чего это нужно, и почему вы выбрали именно такой способ решения вашей задачи?
...
Рейтинг: 0 / 0
07.11.2013, 16:17
    #38456442
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Гость333
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION dbo.testf (@x int)
RETURNS TABLE
AS
RETURN
( 
	SELECT * FROM T1 WHERE @X = 1
    UNION ALL
	SELECT * FROM T2 WHERE @X = 2
)



такие варианты тоже не канают, т.к. в зависимости от условия нужно сделать абсолютно разные выборки... с разным кол-вом полей и условия как такого к выборке не постаивть...

юнион же подходит только для одинакого кол-ва полей...
...
Рейтинг: 0 / 0
07.11.2013, 16:18
    #38456446
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Гость333b10sструктура результата будет разной :(
Мда... тогда давайте с самого начала, для чего это нужно, и почему вы выбрали именно такой способ решения вашей задачи?

тут нужно абстрагироваться :) причину я объяснить не могу. задача поступила как есть - в зависимости от условия будет выбираться разное кол-во полей с разных источников
...
Рейтинг: 0 / 0
07.11.2013, 16:18
    #38456447
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sтакие варианты тоже не канают, т.к. в зависимости от условия нужно сделать абсолютно разные выборки

И зачем тогда одна функция?
...
Рейтинг: 0 / 0
07.11.2013, 16:20
    #38456451
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sзадача поступила как есть - в зависимости от условия будет выбираться разное кол-во полей с разных источников
Что ? Задача так и звучит - при выборке из _одного_ объекта должны получаться _два_ разных по структурк результата ?
...
Рейтинг: 0 / 0
07.11.2013, 16:20
    #38456454
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
pkarklinb10sтакие варианты тоже не канают, т.к. в зависимости от условия нужно сделать абсолютно разные выборки

И зачем тогда одна функция?

не могу дать ответ на вопрос - зачем, почему именно так и что это вообще. есть задача.
...
Рейтинг: 0 / 0
07.11.2013, 16:21
    #38456455
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Gloryb10sзадача поступила как есть - в зависимости от условия будет выбираться разное кол-во полей с разных источников
Что ? Задача так и звучит - при выборке из _одного_ объекта должны получаться _два_ разных по структурк результата ?

Чуть внимательнее - объекты тоже могут быть разными.
...
Рейтинг: 0 / 0
07.11.2013, 16:21
    #38456459
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sЧуть внимательнее - объекты тоже могут быть разными.
Почему тогда вы хотите создать _одну_ функцию ?
...
Рейтинг: 0 / 0
07.11.2013, 16:22
    #38456462
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Gloryb10sЧуть внимательнее - объекты тоже могут быть разными.
Почему тогда вы хотите создать _одну_ функцию ?
извините, но я выше дважды ответил на ваш вопрос.
...
Рейтинг: 0 / 0
07.11.2013, 16:22
    #38456463
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sесть задача.

Какая задача? Создать одну функцию, делающую произвольную выборку из произвольного объекта?
...
Рейтинг: 0 / 0
07.11.2013, 16:24
    #38456466
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sGloryпропущено...

Почему тогда вы хотите создать _одну_ функцию ?
извините, но я выше дважды ответил на ваш вопрос.
Тогда вы читайте внимательно вопрос
Задача в которой запрос к _одному_ объекту должен возвращать два различных результата - это бред
Либо постановщик задачи профан, либо вы.
...
Рейтинг: 0 / 0
07.11.2013, 16:24
    #38456467
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
pkarklinb10sесть задача.

Какая задача? Создать одну функцию, делающую произвольную выборку из произвольного объекта?

не кажется ли вам, что мы вернулись к топику? ;)
внимательнее, господа!

Модератор: Когда соберетесь с мыслями и будете готовы отвечать на вопросы - приходите.
...
Рейтинг: 0 / 0
07.11.2013, 16:25
    #38456468
Гость333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10s,

Задача, в сформулированном вами виде, не имеет решения. Структура столбцов, выдаваемых табличной функцией (хоть inline, хоть multi-statement), фиксирована и не может варьироваться в зависимости от каких-либо условий. Так же, как не может варьироваться в зависимости от условий состав столбцов таблицы или представления.

Выполните запрос
Код: sql
1.
select * from sys.columns where object_id = object_id('ИмяТабличнойФункции')

, и это станет очевидно.
...
Рейтинг: 0 / 0
07.11.2013, 16:26
    #38456472
Гость333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sGloryЗадача так и звучит - при выборке из _одного_ объекта должны получаться _два_ разных по структурк результата ?

Чуть внимательнее - объекты тоже могут быть разными.
В данном случае "один объект" — это желаемая вами функция.
...
Рейтинг: 0 / 0
07.11.2013, 16:26
    #38456473
b10s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
Gloryb10sпропущено...

извините, но я выше дважды ответил на ваш вопрос.
Тогда вы читайте внимательно вопрос
Задача в которой запрос к _одному_ объекту должен возвращать два различных результата - это бред
Либо постановщик задачи профан, либо вы.

ок. выяснять уровень профессионализма, я вижу, вы любитель. тут я не буду оспаривать ваш вывод.

теперь давайте сделаем вывод по решению задачи. у меня не получается.
...
Рейтинг: 0 / 0
07.11.2013, 16:27
    #38456475
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
t-SQL, создание функции возвращающей таблицу в зависимости от параметра
b10sтеперь давайте сделаем вывод по решению задачи. у меня не получается
Дурацкие задачи не имеют решения.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / t-SQL, создание функции возвращающей таблицу в зависимости от параметра / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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