这只是给我最后一个字符(数字),但我需要整个数字字符串
SELECT substring('123 Main Street' FROM '%#"[0-9]#"%' FOR '#')
这给了我相同的结果,但是我需要它返回一个空白值:
SELECT substring('Main 123 Street' FROM '%#"[0-9]#"%' FOR '#')
注意:Postgres 7.4
有用的链接:http : //www.postgresql.org/docs/7.4/static/functions-
matching.html
更新:
SELECT substring('Main 123 Street' FROM '[0-9]+')
SELECT substring('123 Main Street' FROM '[0-9]+')
更新2:
几乎拥有它:
如果不是以数值开头,这将为我提供所需的结果:
SELECT
COALESCE(substring('Main 123 Street' FROM '[0-9]*') || 'Main 123 Street', ''),
substring('Main 123 Street' FROM '[0-9]*')
但这给了我两个人,我只想要第二个条件:
SELECT
COALESCE(substring('123 Main Street' FROM '[0-9]*') || '123 Main Street', ''),
substring('123 Main Street' FROM '[0-9]*')
我得到了它!!!感谢所有发布者:
SELECT CASE
WHEN COALESCE(substring(db_column FROM '[0-9]*'), db_column) != '' THEN COALESCE(substring(db_column FROM '[0-9]*'), db_column)
ELSE db_column
END AS addsress_string
FROM db_table
我不知道postgresql regex语法,但是在大多数regex中,您都会编写[0-9]+
。没有量词,则[0-9]
匹配单个字符。
问题内容: 我有一个表,其中的一列也包含以数字开头的数据,在MySQL上 如何选择仅以数字开头的行? 问题答案:
问题内容: 我正在尝试使用以下命令选择MySQL中仅包含字母数字字符的所有行: 但是,它将返回所有行,而不管它们包含非字母数字字符的事实。 问题答案: 试试这个代码: 这样可以确保所有字符都匹配。
问题内容: 如何选择以某个字符串开头的列值的行? 例如,我想选择“名称”列以“先生”开头的行。 问题答案: 你可以做 参见http://www.sqlite.org/lang_expr.html
问题内容: 如标题所述: 我有一个选择查询,我正在尝试对包含数字的字段进行“排序”,问题是此数字实际上是以0开头的字符串,因此“ order by”正在执行此操作… 有什么想法吗? 编辑:如果我这样做:“ … ORDER BY(field + 1)”我可以解决此问题,因为以某种方式在内部将字符串转换为整数。这是像C的atoi一样“正式”转换它的方法吗? 问题答案: 您可以使用 http://www
问题内容: 我发现了这种奇怪的行为,并且为此感到震惊……有人有什么想法吗? Oracle 10g:我有两个不同的表,都具有名为“ TESTCOL ”的列,作为 Varchar2 (10) ,不能为空。 如果我对 table1 执行此查询,则会得到正确的结果: 请注意 ,我不是专门放置“ 1234” …不是错字,而是动态生成的查询,因此我将尽量不进行更改(至少在不久的将来不会更改)。 但是,如果我在
问题内容: 假设我有一个字符串, 我想删除最后一个字符串,或者该字符串看起来像还是 我仍然希望得到我的结果。并且请尝试在您的答案中做些解释。我不只是想复制粘贴内容而不了解它。谢谢你。 问题答案: 处理这样的“修饰”逗号的一种方法是使用以下语句: 这非常不言而喻:该语句考虑了三种情况- 当字符串的两边都有逗号时, 当字符串以逗号开头但不以逗号结尾时,以及 当字符串以逗号结尾但不以一个字符开头时。 在