2017-06-01 208 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

相关问题