在Database [SQL]

时间:2016-04-05 13:46:34

标签: python sql sql-server regex

我有一个非常大的数据库,大约有20000个条目。有些条目包含六个或七个数字的坐标,但不在“坐标”字段中,而是在“备注”字段中。

我想在他们的备注字段中找到所有有coordniates的条目。

到目前为止,我建立了与我的数据库的连接,定义了一个游标并尝试了以下外观的查询:

query = " SELECT INDEX 
          FROM GeoTest.dbo.Tabelle_Bohrung 
          WHERE BO_BEMERKUNG NOT LIKE '%[^0-9]%' "

INDEX是每个条目的ID(不同)。

好吧,我想我应该使用正则表达式来捕捉坐标。

我真的不知道如何用我的查询来表达我想要的东西。

我会非常感谢每一个建议和帮助!!

所以这是备注字段的原始示例:

        ID      remarks
LINE1   ID 1    - 2 Bohrungen vorhanden - Koordinate 2. Bohrung: 524'656 / 158'307
LINE2   ID 2    Schichtbeschrieb siehe BL 16.Z.03
LINE3   ID 3    - Koordinate 2. Bohrung 510'055 / 165'687
LINE4   ID 4    - Bohrprofil siehe Kataster - Nummer 2944
LINE5   ID 5    - Tiefe der Bohrung 60 m

在我的情况下,我想用我的查询获取LINE1和LINE3的ID。

1 个答案:

答案 0 :(得分:0)

如果您使用LIKE,则实际上并未使用正则表达式。它只支持文字(显然),char类([]中的替代字符/范围),通配符(带_)和锚定(默认情况下它是锚定的:%用于取消锚定,也可以像中间的.*一样使用。

如果您想确保坐标中有2个数字(每个数字的小数部分用'表示),用空格填充/分隔,则可以执行以下操作:LIKE '%[0-9]\'[0-9]% / %[0-9]\'[0-9]%'