2016-04-15 52 views
1

我试图编写一个SQL函数,它将得到一个ID作为输入,并用术语连接一年的最后两个字符。带SQL功能的Concat

例如,如果我调用函数并键入112我希望它给我输出为00X1。我怎么做?

感谢

id | unswid | year | term | name |  longname  | starting | ending | startbrk | endbrk | endwd | endenrol | census 
-----+--------+------+------+-----------+----------------------+------------+------------+----------+--------+-------+------------+------------ 
112 | 5001 | 2000 | X1 | Summ 2000 | Summer Semester 2000 | 1999-12-01 | 2000-01-31 |   |  |  |   | 1999-12-24 
114 | 5004 | 2000 | S1 | Sem1 2000 | Semester 1 2000  | 2000-02-01 | 2000-06-30 |   |  |  | 2000-03-11 | 2000-03-31 
113 | 5005 | 2000 | X2 | Wint 2000 | Winter Semester 2000 | 2000-06-14 | 2000-07-14 |   |  |  |   | 
115 | 5007 | 2000 | S2 | Sem2 2000 | Semester 2 2000  | 2000-07-01 | 2000-12-31 |   |  |  | 2000-07-28 | 2000-08-31 
117 | 5011 | 2001 | X1 | Summ 2001 | Summer Semester 2001 | 2000-12-01 | 2001-02-25 |   |  |  | 2001-01-30 | 2001-01-31 

回答

1

假设领域yearinteger你可以这样做:

CREATE FUNCTION year_term(n integer) RETURNS text AS $$ 
    SELECT (year % 100)::text || term FROM my_table WHERE id = n; 
$$ LANGUAGE sql STRICT; 

如果该字段yearvarchartext你可以这样做:

CREATE FUNCTION year_term(n integer) RETURNS text AS $$ 
    SELECT right(year, 2) || term FROM my_table WHERE id = n; 
$$ LANGUAGE sql STRICT; 
+0

谢谢你这么多 –