这种没有好方法,再做一个表或者临时表。id key 1 D 2 C 3 B 4 E关联一下按 1 2 3 排就行了
CREATE TABLE #temp (cstr CHAR(1)) INSERT #temp SELECT 'A' UNION ALL SELECT 'B' UNION ALL SELECT 'C' UNION ALL SELECT 'D' UNION ALL SELECT 'E' UNION ALL SELECT 'F'SELECT * FROM #temp ORDER BY CHARINDEX(cstr,'DCBEFA')
自己找到了,没这么复杂select xx from xx where xx order by case 列名 when 'D' then 1 when 'C' then 2 when 'B' then 3 when 'E' then 4 when 'F' then 5 when 'A' then 6 else 7 End
1 D
2 C
3 B
4 E关联一下按 1 2 3 排就行了
CREATE TABLE #temp (cstr CHAR(1))
INSERT #temp
SELECT 'A' UNION ALL
SELECT 'B' UNION ALL
SELECT 'C' UNION ALL
SELECT 'D' UNION ALL
SELECT 'E' UNION ALL
SELECT 'F'SELECT * FROM #temp
ORDER BY CHARINDEX(cstr,'DCBEFA')
where xx
order by case 列名
when 'D' then 1
when 'C' then 2
when 'B' then 3
when 'E' then 4
when 'F' then 5
when 'A' then 6
else 7
End