我有一个包含列号(x)的表,其中包含两个数字字母.我用的时候
ORDER BY x DESC
Run Code Online (Sandbox Code Playgroud)
它将包含字母的字段放在顶部.如何将包含字母的字段视为最低值?
您可以在以下位置使用案例陈述order by:
order by (case when left(x, 1) between '0' and '9' then 0 else 1 end),
x desc
Run Code Online (Sandbox Code Playgroud)
编辑:
如果你想包含的字段一个在顶部的信:
order by (case when x like '%[a-zA-Z]%' then 0 else 1 end),
x desc;
Run Code Online (Sandbox Code Playgroud)
如果您想要在顶部只包含字母的字段:
order by (case when x not like '%[^a-zA-Z]%' then 0 else 1 end),
x desc;
Run Code Online (Sandbox Code Playgroud)
如果您想要底部只包含数字的字段:
order by (case when x not like '%[^0-9]%' then 1 else 0 end),
x desc;
Run Code Online (Sandbox Code Playgroud)