Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу связать табличную функцию с таблицей / 3 сообщений из 3, страница 1 из 1
02.06.2020, 21:15
    #39965448
Komil_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу связать табличную функцию с таблицей
Доброе время суток!

У меня SQL Server 2014, к сожалению функция String_split отсутствует. Нашёл на просторах интернета самопальную функцию dbo.Split.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE FUNCTION dbo.Split(@Str Varchar(4000), @Delimiter Varchar(5))
RETURNS @Results TABLE (Items Varchar(4000))
AS BEGIN
    DECLARE @Counter Int = 1, @Slice Varchar(4000);

    IF @Str IS NULL RETURN;

    WHILE @Counter != 0
    BEGIN 
        SELECT @Counter = CHARINDEX(@Delimiter, @Str);
        IF @Counter != 0
            SELECT @Slice = LEFT(@Str, @Counter - 1);
        ELSE
            SELECT @Slice = @Str;

        INSERT INTO @Results(Items) VALUES(@Slice)
        SELECT @Str = RIGHT(@Str, LEN(@Str) - @Counter);
        IF LEN(@Str) = 0 BREAK;
    END;
    RETURN;
END;



Теперь в качестве параметра хочу указать название поля другой таблицы. Что-то вроде этого:
Код: sql
1.
2.
SELECT T.*, S.Items
FROM Table1 T, dbo.Split(T.Field1, '*') S


Но сервер ругается!
Не удалось привязать составной идентификатор

Как можно разрулить проблему?

P.S.
Сразу скажу, что я делетант и у меня не хватает знаний. Поэтому простите если вопрос слишком простой. Долго гуглил, но ничего путного не нашёл.
...
Рейтинг: 0 / 0
02.06.2020, 21:26
    #39965450
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу связать табличную функцию с таблицей
Код: sql
1.
2.
SELECT T.*, S.Items
FROM Table1 T cross apply dbo.Split(T.Field1, '*') S
...
Рейтинг: 0 / 0
03.06.2020, 05:39
    #39965515
Komil_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу связать табличную функцию с таблицей
invm,

Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу связать табличную функцию с таблицей / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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