2017-06-22 54 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

謝謝你的作品 –