2

我有一个表,它包含 varchar 数据。该列中存在的数据是这样的。

"bcd"
cde
abcd
'xxx'
(zzz)

现在我想按字母顺序排序。我试过这个查询

select my_col from tbl_user order by ltrim(REPLACE(my_col,'"', '')) ASC

它的输出如下:

'xxx'
(zzz)
abcd
"bcd"
cde

但我想要的输出是,意味着在排序时必须按照字母顺序排序,无论是否"存在。

abcd
"bcd"
cde
'xxx'
(zzz)

我怎样才能做到这一点???。有任何想法吗。

4

2 回答 2

4

多试REPLACE

ORDER BY REPLACE(REPLACE(REPLACE(REPLACE(my_col,'"', ''), '(',''), ')', ''), '''','') ASC

SQLFiddle 演示

于 2012-10-09T09:22:15.620 回答
1

尝试这个:

SELECT id
FROM   tblNum
ORDER  BY REPLACE(id, SUBSTRING(id, PATINDEX('%[^a-zA-Z]%', id), 1), '')
于 2012-10-09T09:28:57.927 回答