mssql
可以如下
CREATE FUNCTION [dbo].[f_Split] 
(
@val varchar(max),
@Splits varchar(100)
)
RETURNS @Table TABLE 
(
    id varchar(100)
)
AS
BEGIN
……
END
GOmysql函数可以返回表吗??

解决方案 »

  1.   

    看了一下手册,
    CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
        SONAME shared_library_name
    没有TABLE类型
      

  2.   

    好像不可以,以前我用mssql也做过一个类似的分割字符串的函数fn_Str2Ary也是返回表的,现在用mysql了发现find_in_set更方便了。
      

  3.   

    find_in_set 是什么意思?是类似 IN() 函数的功能吗?比 IN() 函数更强吗?
      

  4.   

    好像是不行,我要返回表的记录集都通过存储过程里面执行动态SQL,然后应用层使用与select一样的方法来获取数据集,
    注意,功能实现与返回记录集,虽然都是调用存储过程,但是在应用层调用的方法是不一样,跟调用 查询语句和更新、插入、删除等操作的区别是一致的
      

  5.   

    目前的版本并function不支持返回table这种类型的函数,只能返回一個值,而且必須返回一個值,如果你要返回表的話可以用procedure來做