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

时间:2017-12-22 00:30:03

标签: mysql sql sql-server

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

1 个答案:

答案 0 :(得分: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