1

桌子:

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;

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

4

2 回答 2

2

您可以使用字符串连接运算符 -||

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

于 2013-08-16T05:48:15.433 回答
1

我不知道这是否是最好的方法,但我认为它会完成工作:

您可以使用SELECT TEXTCAT( param 1, param 2) 如果您想要多个属性,那么您必须TEXTCAT在 a中使用TEXTCAT,例如:

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

如果您的属性不是文本类型,那么您将不得不将它们转换为文本,如下所示:

attribute::text

因此,要整体回答您的问题:

SELECT TEXTCAT(building_code::text, TEXTCAT( floorNo::text , roomNo::text))
于 2013-08-15T10:24:19.607 回答