2017-06-01 58 views
-2

我正在使用一個Postgres數據庫,其中包含數千個文本字段的歷史人口普查文檔。我正在尋找具有日曆信息的人,我需要做的一件事是找到每個包含四位數字的條目,這幾乎總是意味着某一年。使用SQL來選擇一個字符串包含四位數整數的行

具體來說,我需要能夠選擇條目,其中一個「文本」字段包含其文本中的四位整數,選擇與文本串像行:

「他買下這塊地於1567年,後先前的佔有者已經死亡。「

感謝您的幫助。

+0

也許這個鏈接可以幫助你找到答案。 https://www.postgresql.org/docs/9.5/static/functions-matching.html – Jason

+0

歡迎來到SO。請閱讀這個[how-to-ask](http://stackoverflow.com/help/how-to-ask)並遵循那裏的指導來改進你的問題,並用足夠的代碼和錯誤信息來描述你的問題。 – thewaywewere

+0

謝謝賈森! – gislipals

回答

0

如果您將數字存儲爲字符串,則可以使用正則表達式。

select * 
from the_table 
where the_text_column ~ '^[0-9]{4}$' 

此找到所有行the_text_column包含正好四位

+0

嘿,我不確定你瞭解這個問題。我需要能夠選擇文本字符串包含四位數整數的字段。 – gislipals

+0

@gislipals:看我的編輯。 –

+0

謝謝。後面這個真的很好。現在我需要能夠區分這兩個字符串:「他在1567年買了房子」和「他去年買了房子」。我試圖選擇具有精確年度信息的所有陳述,而忽略了具有「現在之前x年」的相對年代的其他人。我編輯了這個話題,使之更加清晰 - 非常感謝您的幫助@a_horse_with_no_name – gislipals

相關問題