【发布时间】:2022-01-23 08:19:17
【问题描述】:
我有一个如下所示的 SQL 数据库表。
| id | version | data |
|---|---|---|
| 1 | 1.0.1 | xxx |
| 2 | 1.1.0 | yyy |
| 3 | 1.1.3 | zzz |
| 4 | 1.10.1 | aaa |
| 5 | 2.0.0 | bbb |
我想选择version大于等于1.1.0的数据。
在上述情况下,预期的输出如下。
| id | version | data |
|---|---|---|
| 2 | 1.1.0 | yyy |
| 3 | 1.1.3 | zzz |
| 4 | 1.10.1 | aaa |
| 5 | 2.0.0 | bbb |
你能告诉我如何在 SQL 查询中提取它吗??
【问题讨论】:
-
假设你在谈论 MySQL,this StackOverflow link 有一个接受的答案。
-
MSSQL 2016 及更高版本有STRING_SPLIT
-
您使用的是哪种 DBMS 产品? “SQL”只是所有关系数据库都使用的一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag。 Why should I tag my DBMS
-
如果你使用的是Postgres,你可以使用
WHERE string_to_array(version, '.')::int[] >= array[1,1,0]