2014-10-02 51 views
0

我有一個使用子查詢這樣的Postgres,串子查詢

SELECT "columnA","columnB", (SELECT column1 FROM tableB WHERE id=1 LIMIT 1) as text 
FROM tableA WHERE id=1 

查詢現在我想只能從我的「文本」列獲得最後3個字符。我試圖應用子字符串或右邊我的子選擇,但它返回一個錯誤,任何人都可以解釋爲什麼以及如何正確地做到這一點?

回答

1

您需要使用內部功能串匹配POSIX正則表達式

SELECT "columnA","columnB", (SELECT substring(column1::TEXT from '...$') FROM tableB WHERE id=1 LIMIT 1) as text 
FROM tableA WHERE id=1 

請記住,這樣,如果你在表A有超過1條記錄符合您的WHERE條件,你仍然會得到該查詢的變量文本中的值相同。