比如说我要查询:
select * from batch_trx o where o.bat_id in ('HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
查询结果为:
HB10HA2DCB
HB115AEBAA
HB11BAGBBA
HB11BAGBBB如何才能将查询结果以查询前的数据排序出来,不要在输出结果时自动替我排序我希望的排序结果为:
HB11BAGBBB
HB11BAGBBA
HB115AEBAA
HB10HA2DCB求助高手帮忙解决下··············
select * from batch_trx o where o.bat_id in ('HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
查询结果为:
HB10HA2DCB
HB115AEBAA
HB11BAGBBA
HB11BAGBBB如何才能将查询结果以查询前的数据排序出来,不要在输出结果时自动替我排序我希望的排序结果为:
HB11BAGBBB
HB11BAGBBA
HB115AEBAA
HB10HA2DCB求助高手帮忙解决下··············
order by
charindex(o.bat_id,'HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
select * from batch_trx o where o.bat_id in ('HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
order by
charindex(','+o.bat_id+',',','+'HB11BAGBBB,HB11BAGBBA,HB115AEBAA,HB10HA2DCB'+',')
--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
create table [test](id varchar(10))
insert [test]
select 'HB10HA2DCB' union all
select 'HB115AEBAA' union all
select 'HB11BAGBBA' union all
select 'HB11BAGBBB'
select * from test
order by id desc/*
id
HB11BAGBBB
HB11BAGBBA
HB115AEBAA
HB10HA2DCB
*/--这么不行么?
select * from batch_trx o where o.bat_id in ('HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
ORDER BY GETDATE()
FROM batch_trx o
WHERE o.bat_id IN('HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
ORDER BY
CHARINDEX(','+o.bat_id+',',','+'HB11BAGBBB,HB11BAGBBA,HB115AEBAA,HB10HA2DCB'+',')
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([name] VARCHAR(10))
INSERT [tb]
SELECT 'HB10HA2DCB' UNION ALL
SELECT 'HB115AEBAA' UNION ALL
SELECT 'HB11BAGBBA' UNION ALL
SELECT 'HB11BAGBBB'
--------------开始查询--------------------------SELECT * FROM [tb] where [name] in ('HB11BAGBBB','HB11BAGBBA','HB115AEBAA','HB10HA2DCB')
ORDER BY CHARINDEX(','+[name]+',','HB11BAGBBB,HB11BAGBBA,HB115AEBAA,HB10HA2DCB,')
----------------结果----------------------------
/*
name
----------
HB11BAGBBB
HB11BAGBBA
HB115AEBAA
HB10HA2DCB(4 行受影响)*/