表某一位为特定值的记录排在最前

来源:互联网 发布:淘宝怎么买vr资源 编辑:程序博客网 时间:2024/05/01 02:24

m_batch01表第11位为1的批次排在最前

SELECT * FROM m_batch01 ORDER BY CHARINDEX(',' + SUBSTRING(BatchNo,11,1) +',',',1,0,2,')

该语句的解释,取BatchNo的第11位前后加上逗号,然后按按在字符串“,1,0,2”的顺序进行排序
注意“,1,0,2”,为BatchNo的第11位可能出现的值

charindex函数功能类似vb中的instr,取前面一个字符串在后一个字符串中的位置