如何替换sql中列的第一个字符

问题描述 投票:-1回答:1

我有一个表,我希望在该表中对列进行排序。但是我无法获得排序顺序,因为字符串的第一位有不同种类的字符。其中一些有水平标签,其中一些有空格,有些是空的。我尝试过修剪方法,但它对我不起作用。我在该表中有近20万条记录。我无法更新表格。我需要一个select查询,它应该给结果忽略所有不必要的东西,并且应该对列进行排序。

mysql sql sql-server
1个回答
1
投票

我认为这可能有用

SELECT *
FROM table_name
ORDER BY IF(coloum_name LIKE "_%", substr(coloum_name, 1), coloum_name);

说明:在将字符串返回到IF子句之前,我们使用ORDER BY函数从字符串的开头剥离第一个字符。对于更复杂的规则,我们可以创建一个用户定义的函数,并将其放在ORDER BY子句中。然后你会... ORDER BY MyFunction(coloum_name)

对于SQL Server,请执行以下操作:

SELECT *
FROM table_name
ORDER BY CASE WHEN coloum_name LIKE "_%" THEN substr(coloum_name, 1) ELSE coloum_name END
© www.soinside.com 2019 - 2024. All rights reserved.