--创建函数  
CREATE FUNCTION GetAttr (@ProdID NUMBER(10))
RETURNS NVARCHAR(1000)
AS
BEGIN
DELCARE @result NVARCHAR(1000)
SET @result=''
SELECT @result= @result + av.attributevalue + SPACE(1)
FROM lc_fitment_pinfo_attributelist al,
    lc_fitment_attributevalue av,
    lc_fitment_productinfo info
    WHERE info.productid = @ProdID
    AND al.productinfoid = info.id
    AND al.product_choiceattributevalueid = av.id
   RETURN(@result)
END--得到记录集
SELECT 
       info.aliasname,
       prod.code,
       info.price,
       dbo.GetAttr(prod.id)
FROM lc_fitment_productinfo info,
     lc_fitment_product prod,
WHERE prod.id = 1
AND info.productid = prod.id

解决方案 »

  1.   

    代码第一次看到,但基本还能看懂
    但怎么用啊? 我这里的是Orcal的数据库系统提示 GetAttr 无效标识
      

  2.   

    回 funsuzhou(努力ing,处变不惊!) 你的话我看不懂,能说的在清晰些吗
      

  3.   

    我自己查到一个类似的帖子,好像能实现这样的功能,但看也看不懂有人能帮我解释一下吗?http://community.csdn.net/Expert/topic/4264/4264485.xml?temp=.6399805
      

  4.   

    Oracle版本,如果支持sys_connect_by_path,按上面例子改一下就行。
    哪里不明白再问。