我有一列包含字符串'Operator(1)',依此类推,直到到目前为止'Operator(600)'。
我想按数字顺序排列它们,然后我想出了
select colname from table order by
cast(replace(replace(colname,'Operator (',''),')','') as int)
如果确实需要保留数据格式-并添加数字排序顺序列是更好的解决方案-然后考虑将文本操作包装在用户定义的函数中。
通过dbo.udfSortOperator(colname)从表顺序中选择colname
它不那么丑陋,可以给您一些抽象。函数调用会产生额外的开销,但是在命中率不太高的数据库服务器中包含数千行的表上,这并不是主要问题。在功能中记下注释,以便以后根据需要进行优化。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。