SELECT * FROM num WHERE (num IN ('222'))
union all
SELECT * FROM num WHERE (num IN ('333'))
union all
SELECT * FROM num WHERE (num IN ('111'))
union all
SELECT * FROM num WHERE (num IN ('333'))
union all
SELECT * FROM num WHERE (num IN ('111'))
order by charindex(num,'222', '333', '111')
而且看起来语句效率也很低。(个人见解)
谢谢
SELECT * FROM num WHERE (num IN ('222', '333', '111'))
order by charindex(num,'222,333,111')
order by charindex(num,'222,333,111')
还是不行,运行成功,但得不到想要的结果。(结果还是按111,222,333排序)会不会是类型问题?SELECT * FROM num WHERE (num IN ('222', '333', '111')) ---条件是字符型
order by charindex(num,'222,333,111')--条件是否会转为数值型?
declare @t table(num varchar(10))
insert @t select '111'
union all select '222'
union all select '333'
union all select '444'
union all select '000'--查询
SELECT * FROM @t
WHERE num IN ('222', '333', '111')
order by charindex(num,'222,333,111')SELECT * FROM @t
WHERE num IN ('222', '444', '111')
order by charindex(num,'222,444,111')/*--测试结果
num
----------
222
333
111(所影响的行数为 3 行)----------
222
444
111(所影响的行数为 3 行)
--*/