Мне нужна версия этой функции postgresql - PullRequest
0 голосов
/ 01 июля 2018

Я новичок в postgresql и мне нужна версия этой функции в postgresql - не могли бы вы мне помочь?

CREATE FUNCTION [dbo].[getpersonname]
    (@commid INT)
RETURNS VARCHAR(255)
AS
BEGIN
    DECLARE @personnname varchar(255)

    SELECT 
        @personnname = COALESCE(@personname + ',', '') + 
                       ISNULL(CONVERT(VARCHAR(50), pers.personnname  ),'')
    FROM 
        dbo.comlink comli  
    INNER JOIN 
        dbo.person pers ON personid= comli_personid
    WHERE  
        comli.comli_commid = @commid

    RETURN @personnname 
END

1 Ответ

0 голосов
/ 01 июля 2018

Если я правильно понимаю этот код, он возвращает все имена, разделенные запятыми.

Это легко сделать с помощью простого оператора SQL в Postgres:

create FUNCTION get_person_name(p_commid int)
   RETURNS text
AS
$$
    SELECT string_agg(pers.personnname, ',')
    FROM dbo.comlink comli  
      JOIN dbo.person pers ON personid = comli_personid
    WHERE  comli.comli_commid= p_commid;
$$
language sql;
...