这是我的表:
--------------
Names
--------------
"Ben 52"
"Dan 236"
"Carter 73"
"Harry"
"Peter 53"
"Connor 27"
"Morgan"
"Richard 675"
我想创建一个查询,将没有数字的列放在列表的末尾。这基本上是我试图创造的想法:
SELECT names FROM table1 ORDER BY ContainsNum(names) DESC
这是我应该得到的结果:
--------------
Names
--------------
"Ben 52"
"Dan 236"
"Carter 73"
"Peter 53"
"Connor 27"
"Richard 675"
"Harry"
"Morgan"
如果我不够清楚,请发表评论。 我以前没有人见过这个问题。
谢谢!
答案 0 :(得分:4)
只需使用"tabs": {
"textTabs": [
{
"tabLabel": "\\*StudentLastName",
"value": "Doe"
},
{
"tabLabel": "\\*StudentFirstName",
"value": "John"
}]
}
即可。大多数数据库都支持某种形式的正则表达式,如下所示:
order by
确切的语法因数据库而异。
注意:它仅适用于order by (case when names regexp '.*[0-9].*' then 0 else 1 end),
names
。我添加了通配符,因为我认为它使模式更直观。
答案 1 :(得分:0)
SELECT names FROM table1 ORDER BY SUBSTRING(names, LENGTH(names)-2, 1) DESC
以数字结尾的所有内容都将低于以字符结尾的任何内容。
答案 2 :(得分:0)
SELECT names, case when REGEXP_LIKE(names, '[[:digit:]]') then '1' else '2' end ordering_col
FROM table1
order by 2;