想想当前的VISITS
表:
ID ID_PERSON DATE
1 1 10/12/2012
2 5 10/12/2012
3 11 10/12/2012
4 55 10/13/2012
5 12 10/13/2012
6 6 10/14/2012
7 10 10/15/2012
8 13 10/15/2012
9 11 10/15/2012
10 5 10/16/2012
我需要的是创建每天访问的自定义排序:
订单1、2、3用于日期10/ 12 / 2012,1,2用于日期10/13/2012等。
起初它可以是随机的,但随后用户可以创建订单,这不是我现在关心的问题。
向该表添加随机排序列的 SQL 命令是什么?
可能的结果:
ID ID_PERSON DATE ORDER_IN_DATE
1 1 10/12/2012 2
2 5 10/12/2012 3
3 11 10/12/2012 1
4 55 10/13/2012 1
5 12 10/13/2012 1
6 6 10/14/2012 1
7 10 10/15/2012 1
8 13 10/15/2012 3
9 11 10/15/2012 2
10 5 10/16/2012 1
排序规则:首次创建ORDER_BY_DATE
列时随机。(当然,自动增加的值也算随机)。
解决方案:
更新表VISIT
以添加ORDER_IN_DATE
列,b。执行以下查询:
UPDATE VISIT
SET ORDER_IN_DATE = (SELECT TEMP_ORDER
FROM (SELECT V.ID AS TEMP_ID, 1 + ROWID % (SELECT COUNT(*)
FROM VISIT
WHERE DATE = V.DATE
) AS TEMP_ORDER
FROM VISIT V
ORDER BY DATE, RANDOM())
WHERE ID = TEMP_ID);