这个简单的Sql如何实现
SELECT ID, NAME FROM TABLE1 WHERE ID IN ('03', '09', '02', '04', '05')
其查询结果是如下:
ID NAME
02 AA
03 BB
04 CC
05 DD
09 FF
我想要的结果是按照这样来排序的:
ID NAME
03 BB
09 FF
02 AA
04 CC
05 DD
也就是按照上面的sql语句中的in条件的顺序排序,如何实现?
问题点数:20、回复次数:5Top
1 楼hewenliang(狼)回复于 2005-05-23 10:56:16 得分 0
顶一下,可惜不知道呢!Top
2 楼zhanqiangz(闲云野鹤-Overriding)回复于 2005-05-23 11:28:26 得分 0
用in实现不了这种功能。
SELECT Num=1, ID, NAME FROM TABLE1 WHERE ID =‘03’ union
SELECT Num=2, ID, NAME FROM TABLE1 WHERE ID =‘09’ union
。。。。。
order by Num,或许这样可以实现。Top
3 楼xiedan79(Sam Xie)回复于 2005-05-23 11:35:03 得分 0
没研究过Top
4 楼yrs007(平凡钟)回复于 2005-05-23 11:41:26 得分 0
不懂~希望高手来帮你..
Top
5 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-23 12:02:26 得分 20
zhanqiangz(闲云野鹤-Overriding) 的方法就可以了.
你必须循环你所要取的号,对每一个号设置它的排序,然后union起来,就可以了.
string mystr = "'03', '09', '02', '04', '05'";
string[] myary = mystr.Split(',');
string sql = "";
for(int i=0;i<myary.Length;i++)
{
sql += "SELECT '1' as num,ID, NAME FROM TABLE1 WHERE ID =‘" + myary[i].ToString() + "’";
if(i=myary.Length -1)
{
sql += " union ";
}
}
sql = "select id,name from (" + sql + ") order by num";Top




