Postgresql:处理文本,检测字母顺序不正确的行



我有一些(大部分)按字母顺序处理的文本,例如这些是每个段落的第一个单词:

  • 阿德兰托
  • 阿古拉山
  • 阿拉米达
  • 奥尔巴尼
  • 老奥尔巴尼
    • 新奥尔巴尼
  • 阿尔罕布拉
  • 阿里索·维耶霍
  • 阿尔图拉斯

因此,上面的每个单词都代表一个段落的开头,例如:

阿德兰托,加利福尼亚州圣贝纳迪诺县的一座城市,位于大洛杉矶地区内陆帝国高沙漠部分的维克多维尔西北约 9 英里(14 公里)处......

文本的每个条目可以包含多个段落,以便将不按字母顺序排列的段落视为新条目。

因此,每个条目将对应于一个地点。

在示例中,O(ld) 在 A(lbany) 之后,因此Old Albany是一个条目,但 N(ew) 在 O(ld) 之前,因此New Albany Old Albany的延续。

我的问题是:除了在Postgresql中使用Albany的第一个字母和Old Albany/New Albany之间的ASCII字符差异之外,是否已经存在其他东西? 例如 ASCII - ASCII ('A') ('O') 给出 -14。

那么我只在第一个字符上使用 ASCII 值吗? 还是有更通用的解决方案?

目前,

我正在使用文本首字母之间的 ASCII 差异,与previousRow.descriptionnextRow.description相比,

例如
ABS (ASCII (substring ( currentRow.description, 1,1 ) )  - 
ASCII ( substring ( previousRow.description, 1 ,1 ) ) 

最新更新