日期:2014-05-17  浏览次数:20690 次

【大神请进】自定义规则排序求解
现有表Table A, 主键名是 pk1。 在ASP中我有一个score()的函数,为每条记录打分。
现在想按照得分高低进行排序,请问该怎么操作。

求好心的大神帮忙看看。
------最佳解决方案--------------------
asp我不懂哦,不过我还是建议把函数写到SQLServer里面去。这样也方便管理,不然有些在SQLServer,有些在asp那边,不便于管理
------其他解决方案--------------------
用asp中的函数score给数据集新添加一个列,然后按新列排序。

或者把asp的score()函数改写成sql中的自定义函数。
------其他解决方案--------------------
order by secore()这个函数算出来的值 desc 
------其他解决方案--------------------
引用:
order by secore()这个函数算出来的值 desc

先谢谢1L帮忙,我追问一下,
score()的传参是单个PK,返回值也是单条记录的分数。请问这里应该怎么处理呢?
------其他解决方案--------------------
我假设一下:

select score(pkx1) 的结果是1,select score(pkx2) 的结果是2,select score(pkx3) 的结果是3
那么你可以
select pk1,score(pk1) 分数
from Table 
order by score(pk1) desc 

------其他解决方案--------------------
引用:
我假设一下:

select score(pkx1) 的结果是1,select score(pkx2) 的结果是2,select score(pkx3) 的结果是3
那么你可以
SQL code
select pk1,score(pk1) 分数
from Table 
order by score(pk1) desc


啊,谢谢,这次我明白你的意思了。
如果按照你的代码,那么score()是写在数据库的吧?
现在score()是ASP中的一段程序,可以这么调用吗?
------其他解决方案--------------------
引用:
asp我不懂哦,不过我还是建议把函数写到SQLServer里面去。这样也方便管理,不然有些在SQLServer,有些在asp那边,不便于管理


你说的有道理,谢谢你
------其他解决方案--------------------
引用:
用asp中的函数score给数据集新添加一个列,然后按新列排序。

或者把asp的score()函数改写成sql中的自定义函数。


谢谢你,两种方法都可行。第二种的确更好处理,我想学习一下第一种。可以给出一个实例吗? 谢谢。