我在PostgreSQL中有一个记录列表,如下所示,这些记录实际上是各种书籍的一部分 记录以下列格式生成。
<h:selectOneMenu id="employeeDropdown" value="#{employeeController.activeEmployee}">
<s:selectItems id="activeEmployeeList" value="#{employeeController.activeEmployees}" var="emp" itemValue = "#{emp}" label="#{emp.contact.firstName}" />
</h:selectOneMenu>
我想按照这样排序
1
7.1
6.2
7.1
7.4
6.8.3
6.8.2
10
1.1
7.6
6.1
11
8.3
8.5
1.1.2
6.4
6.6
8.4
1.1.6
6.8.1
7.7.1
7.5
7.3
它是一个varchar列,所以我尝试使用此处列出的内容。 Sorting records from Oracle with multiple decimal points (.)
1
1.1
1.1.2
1.1.6
6.2
6.4
6.5
6.6
6.7
6.8.1
6.8.2
6.8.3
7.2
7.3
7.4
7.5
7.6
7.7.1
7.7.2
8.3
8.4
8.5
10
它一直说无效的函数名称regexp_substr。 这种方式排序的功能是什么?
非常感谢你的帮助。
答案 0 :(得分:2)
您可以通过将字符串转换为整数数组,然后对数组进行排序来完成此操作:
select *
from tbl_wo_kitting
where wo_project_id = 1000033
ORDER BY (string_to_array(line_no, '.'))::int[]
请注意,如果在line_no_
列中无法将值转换为数字,则会失败。