经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » PostgreSQL » 查看文章
postgresql 查询集合结果用逗号分隔返回字符串处理的操作
来源:jb51  时间:2021/2/1 11:30:32  对本文有异议

关键字:

  1. string_agg('' , '')

例如:

  1. select string_agg(name||'' , ',') from sys_user

补充:PostgreSQL 字段用逗号 “,”隔开 判断是否含有某个值

Array Functions and Operators

https://www.postgresql.org/docs/9.2/functions-array.html

  1. -- ----------------------------
  2. -- Table structure for T_STUDENT
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS "public"."T_STUDENT";
  5. CREATE TABLE "public"."T_STUDENT" (
  6. "id" int4,
  7. "name" varchar(255) COLLATE "default",
  8. "course" varchar(255) COLLATE "default"
  9. )
  10. WITH (OIDS=FALSE)
  11. ;
  12. -- ----------------------------
  13. -- Records of T_STUDENT
  14. -- ----------------------------
  15. INSERT INTO "public"."T_STUDENT" VALUES ('1', '李四', '12,45,1,66,7,89');
  16. INSERT INTO "public"."T_STUDENT" VALUES ('2', '刘一', '1,5,8,9');
  17. INSERT INTO "public"."T_STUDENT" VALUES ('3', '王五', '0,4,2');
  18. INSERT INTO "public"."T_STUDENT" VALUES ('4', '张三', '1,2,5,7');
  19. -- ----------------------------
  20. -- Alter Sequences Owned By
  21. -- ----------------------------
  22. -- ----------------------------
  23. -- Table structure for T_STUDENT
  24. -- ----------------------------
  25. DROP TABLE IF EXISTS "public"."T_STUDENT";
  26. CREATE TABLE "public"."T_STUDENT" (
  27. "id" int4,
  28. "name" varchar(255) COLLATE "default",
  29. "course" varchar(255) COLLATE "default"
  30. )
  31. WITH (OIDS=FALSE)
  32. ;
  33. -- ----------------------------
  34. -- Records of T_STUDENT
  35. -- ----------------------------
  36. INSERT INTO "public"."T_STUDENT" VALUES ('1', '李四', '12,45,1,66,7,89');
  37. INSERT INTO "public"."T_STUDENT" VALUES ('2', '刘一', '1,5,8,9');
  38. INSERT INTO "public"."T_STUDENT" VALUES ('3', '王五', '0,4,2');
  39. INSERT INTO "public"."T_STUDENT" VALUES ('4', '张三', '1,2,5,7');
  40. -- ----------------------------
  41. -- Alter Sequences Owned By
  42. -- ----------------------------
  43. id name course
  44. 4 张三 1,2,5,7
  45. 1 李四 12,45,1,5,66,7,89
  46. 2 刘一 1,5,8,9
  47. 3 王五 0,4,2
  48. SELECT * FROM "public"."T_STUDENT" WHERE string_to_array(course, ',') @> ARRAY['2','7']
  49. 结果:
  50. id name course
  51. 4 张三 1,2,5,7
  52. SELECT * FROM "public"."T_STUDENT" WHERE string_to_array(course, ',') <@ array['5','12','45','1','0','4','2']
  53. 结果:
  54. id name course
  55. 3 王五 0,4,2
  56. SELECT * FROM "public"."T_STUDENT" WHERE string_to_array(course, ',') && ARRAY['5','8','225','111']
  57. 结果:
  58. id name course
  59. 4 张三 1,2,5,7
  60. 2 刘一 1,5,8,9

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。如有错误或未考虑完全的地方,望不吝赐教。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号