相关疑难解决方法(0)

将逗号分隔的列数据拆分为其他列

我在列中有逗号分隔的数据:

Column 
------- 
a,b,c,d 
Run Code Online (Sandbox Code Playgroud)

我想将逗号分隔数据拆分为多个列以获得此输出:

Column1  Column2 Column3 Column4 
-------  ------- ------- -------
a        b       c       d 
Run Code Online (Sandbox Code Playgroud)

怎么能实现这一目标?

postgresql split delimiter postgresql-8.4

61
推荐指数
2
解决办法
11万
查看次数

postgres中的字母数字案例敏感排序

我是postrges的新手,想要对varchar类型列进行排序.想用下面的例子来解释这个问题:

表名:testsorting

   order       name
    1            b
    2            B
    3            a
    4            a1
    5            a11
    6            a2
    7            a20
    8            A
    9            a19
Run Code Online (Sandbox Code Playgroud)

区分大小写的排序(在postgres中是默认的)给出:

select name from testsorting order by name;

    A
    B
    a
    a1
    a11
    a19
    a2
    a20
    b
Run Code Online (Sandbox Code Playgroud)

案例敏感排序给出:

通过UPPER(名称)从测试排序中选择名称;

      A
      a
      a1
      a11
      a19
      a2
      a20
      B
      b
Run Code Online (Sandbox Code Playgroud)

如何在postgres中进行字母数字大小写的敏感排序以获得以下顺序:

          a
          A
          a1
          a2
          a11
          a19
          a20
          b
          B
Run Code Online (Sandbox Code Playgroud)

我不介意资本或小写字母的订单,但订单应该是"aAbB"或"AaBb",不应该是"ABab"

如果您在postgres中有任何解决方案,请建议.

postgresql postgresql-9.1

18
推荐指数
2
解决办法
1万
查看次数

正则表达式填充零

我的表中有一系列字符串,我想订购.例如.

Chapter 1 
Chapter 2 
Chapter 11 
Chapter 12
Run Code Online (Sandbox Code Playgroud)

要正确地订购它,我需要用零填充它们.

Chapter 001 
Chapter 002 
Chapter 011 
Chapter 012
Run Code Online (Sandbox Code Playgroud)

也许我可以使用regexp_replace()正则表达式在零中使用pad.

  regexp_replace(chapters.name,'(\d+)\D*','0\1') as name
Run Code Online (Sandbox Code Playgroud)

此解决方案不起作用.我想也许我可以弄清楚反向引用的长度并使用该数字填充我需要的东西:

  regexp_replace(chapters.name,'(\d+)\D*',lpad('\l',3-length('\1'),'0') as name
Run Code Online (Sandbox Code Playgroud)

\1length()总是返回2,即使我使用注意到\1在某些Postgres的功能转化\1为实际捕获的数据.

如何使用Postgres字符串函数和Postgres正则表达式填充零?

regex sql postgresql natural-sort

1
推荐指数
1
解决办法
1349
查看次数