如何在sql中使用用户定义函数选择一个表列

时间:2016-09-29 10:55:28

标签: sql sql-server

使用一些默认输入和返回表创建一个用户定义函数。 以下函数结果用于另一个函数。

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 个答案:

答案 0 :(得分:0)

你很接近,但是在第二个udf中,你试图将结果分配给表变量。更简单的方法是:

DECLARE @Table Table (keyss varchar(20), valuess varchar(20))
INSERT INTO @Table
SELECT  * FROM dbo.Splittext('test')
SELECT keyss FROM @Table

谢谢,