#sql #sql-server
#sql #sql-сервер
Вопрос:
Создайте одну функцию определения пользователя с некоторыми входными данными по умолчанию и верните таблицу. приведенный ниже результат функции используется для другой функции.
CREATE FUNCTION dbo.Splittext(@strArgs VARCHAR(4000))
RETURNS @tab TABLE
(
[Key] VARCHAR(25) NOT NULL,
Value VARCHAR(40) NOT NULL
)
AS
BEGIN
INSERT INTO @tab VALUES('Key1', 'Value1')
INSERT INTO @tab VALUES('Key2', 'Value2')
RETURN
END
GO
select * from dbo.Splittext('test') run this funtion output like
Key Value
*************
Key1 Value1
Key2 Value2
Приведенная ниже функция возвращает только varchar из выбранной таблицы.
CREATE FUNCTION dbo.slecttext()
RETURNs varchar(20)
AS
BEGIN
DECLARE @value varchar(20)
DECLARE @Table Table (keyss varchar(20), valuess varchar(20))
select @Table = value from dbo.Splittext('test')
select @value = Keyys from @Table
Return @value
END
GO
select * from dbo.slecttext() - when i run this function
Мне нужен вывод, подобный
keyss
********
Key1
Key2
если это возможно в этом случае..
Ответ №1:
Вы близки, но во втором udf вы пытаетесь присвоить результат табличной переменной. Более простым методом было бы:
DECLARE @Table Table (keyss varchar(20), valuess varchar(20))
INSERT INTO @Table
SELECT * FROM dbo.Splittext('test')
SELECT keyss FROM @Table
Спасибо,