string - 快速 SQL 问题

标签 string postgresql

致力于 postgres SQL。

我有一个表,其中有一列包含以下格式的值:

Set1/Set2/Set3/...

Seti 可以是每个 i 的一组值。它们由“/”分隔。

我想显示 set1/set2 形式的不同条目,也就是说 - 我想修剪或截断这些条目中的其余字符串。 也就是说,我想要所有不同的选项:

第一组/第二组

正则表达式会很好用:我想要模式的子字符串:.*/.*/

不显示其余部分。

我得到了:

select distinct column_name from table_name

但我不知道如何自己进行修剪。

尝试查看 w3schools 和其他网站以及在 google 中搜索 SQL trim/SQL truncate,但没有找到我要找的东西。

提前致谢。

最佳答案

mu is too short 如果正斜杠之间的字符串长度始终一致,则答案很好。否则,您将需要使用带有子字符串函数的正则表达式。

例如:

=> select substring('Set1/Set2/Set3/' from '^[^/]+/[^/]+');
 substring 
-----------
 Set1/Set2
(1 row)

=> select substring('Set123/Set24/Set3/' from '^[^/]+/[^/]+');
  substring   
--------------
 Set123/Set24
(1 row)

因此您对表的查询将变为:

select distinct substring(column_name from '^[^/]+/[^/]+') from table_name;

相关文档是http://www.postgresql.org/docs/8.4/static/functions-string.htmlhttp://www.postgresql.org/docs/8.4/static/functions-matching.html .

关于string - 快速 SQL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412460/

相关文章:

regex - 是否可以使用正则表达式对 PL/PGSQL 中的文本进行标记化?

带空格的 C++ system() 命令路径

我的代码中 strncpy 中查找并打印最长单词的编译错误

c++ - 为什么我不能将 2 个 const char* 连接到一个 std::string?

postgresql - 使用 PostgreSQL 的交叉表

regex - 两种模式之间的 Postgres regexp_matches

python - 不使用<int :pk>构建django详细 View 和 ListView

ios - 如何通过swift获取字符串中的换行频率

c - 如何使用 : "\\" or "\"? 分割字符串

在 PostgreSQL 9 上用 C 创建触发器