PostgreSQL将不同的属性连接在一起以返回单个值

时间:2013-08-15 10:12:57

标签: postgresql postgresql-9.2

表:

CREATE TABLE venue (id INTEGER DEFAULT NEXTVAL('venue_id_seq'), building_code     building_code, floorNo int,  roomNo int,  width int, length int);

功能:

 CREATE or REPLACE FUNCTION roomCode(_id int ) RETURNS text AS 
$$
 SELECT building_code + floorNo + roomNo FROM venue as v WHERE _id = v.id;
$$ LANGUAGE SQL;

如何将某些属性连接在一起?

2 个答案:

答案 0 :(得分:2)

您可以使用string concatenation operator - ||

CREATE or REPLACE FUNCTION roomCode(_id int ) RETURNS text AS 
$$
 SELECT building_code || ' ' || floorNo::text || ' - ' || roomNo::text FROM venue as v WHERE _id = v.id;
$$ LANGUAGE SQL;

sql fiddle demo

答案 1 :(得分:1)

我不知道这是否是最佳方式,但我认为它将完成工作:

您可以使用SELECT TEXTCAT( param 1, param 2) 如果您需要多个属性,则必须在TEXTCAT内使用TEXTCAT,例如:

TEXTCAT( param 1, TEXTCAT(param 2, param3))

如果您的属性不是文本类型,那么您必须将它们转换为文本:

attribute::text

所以回答你的问题:

SELECT TEXTCAT(building_code::text, TEXTCAT( floorNo::text , roomNo::text))