2016-04-15 57 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

謝謝你這麼多 –