2017-06-22 67 views
-2

tableSQL服务器采取行1列写

alter function yazarkitap(
@yazarID int) 
returns nchar(100) 
as 
begin 
declare @kitaplar nchar(500) 
select @yazarID=y_id from yazar 
select (STUFF((select','+kitap_adi from Kitap where @yazarID=y_id FOR XML PATH('') 
),1,2,''))as kitapadi 
end 

我试图采取yazar_id并显示所有kitap_adi具有相同的一个yazar_id一行。我搜索的东西合并功能,但我不能这样做。

+0

你的问题不清楚的家伙。 –

+0

当我在函数中输入yazar_id时,我想要查看在同一行中具有相同yazar_id的所有kitap_adi行 –

+0

作为参数输入的@YazarID在'select yazarID = y_az y_ar'中由y_id覆盖。您的变量kitaplar不使用。 – Peter

回答

0

你的写作有点不对。您可以按如下方式更改它。你可能会再次得到错误。我建议你删除它并重新创建它。

ALTER FUNCTION yazarkitap 
(
    @yazarID INT 
) 
RETURNS NVARCHAR(MAX) 
AS 
BEGIN 

    DECLARE @kitaplar NVARCHAR(MAX)  

    SELECT @kitaplar = STUFF((
      SELECT ',' + kitap_adi 
      FROM Kitap 
      WHERE 
       y_id = @yazarID 
      FOR XML PATH('') 
      ), 1, 1, '') 

    RETURN @kitaplar 

END 
+0

谢谢你的作品 –