开发者社区> 问答> 正文

强制在SQL Server 2005 varchar列上包含字母和数字的数字顺序?

我有一列包含字符串'Operator(1)',依此类推,直到到目前为止'Operator(600)'。

我想按数字顺序排列它们,然后我想出了

select colname from table order by 
cast(replace(replace(colname,'Operator (',''),')','') as int)

展开
收起
心有灵_夕 2019-12-28 22:34:23 552 0
1 条回答
写回答
取消 提交回答
  • 如果确实需要保留数据格式-并添加数字排序顺序列是更好的解决方案-然后考虑将文本操作包装在用户定义的函数中。

    通过dbo.udfSortOperator(colname)从表顺序中选择colname

    它不那么丑陋,可以给您一些抽象。函数调用会产生额外的开销,但是在命中率不太高的数据库服务器中包含数千行的表上,这并不是主要问题。在功能中记下注释,以便以后根据需要进行优化。

    2019-12-28 22:34:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载