楼主: 〇〇

NineData第2届数据库编程大赛:一条SQL秒 杀100万张火车票

[复制链接]
论坛徽章:
519
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
21#
发表于 2024-12-22 05:32 | 只看该作者
看完了那耳朵发给我的决赛答辩视频,我觉得他的冠 军就是靠嘴皮子挣来的,那真是,唾沫之星天上来,口若悬河三千尺!
你们这个执行时间是怎么测算的?是第一条结果出现的时间?还是全部结果产生的时间?我觉得用CREATE TABLE AS SELECT来测比较准。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
22#
 楼主| 发表于 2024-12-22 05:48 | 只看该作者
能在oracle上跑出列式数据库的速度了不起

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
23#
 楼主| 发表于 2024-12-22 08:57 | 只看该作者
我在11.2 xe执行第一个sql报下面的错误


  1. SQL> @ d:/newkid-train1.txt
  2. ERROR:
  3. ORA-01756: 引号内的字符串没有正确结束
复制代码

另外,怎么要用这么多临时表空间?

  1. SQL> set lines 120
  2. SQL> with p as (
  3.   2      select passenger.*
  4.   3            ,row_number() over(partition by departure_station,arrival_station order by passenger_id) rn ---- 为每组起终点的乘客编一个序号
  5.   4       from passenger)select * from p where rownum<3;

  6. PASSENGER_ID                     DEPARTURE_STATION
  7. -------------------------------- ----------------------------------------------------------------
  8. ARRIVAL_STATION                                                          RN
  9. ---------------------------------------------------------------- ----------
  10. P00000037_1                      上海
  11. 上海1                                                                     1

  12. P00000172_1                      上海
  13. 上海1                                                                     2

  14. 已用时间:  00: 00: 08.48

  15. 执行计划
  16. ----------------------------------------------------------
  17. Plan hash value: 396449086

  18. ------------------------------------------------------------------------------------------
  19. | Id  | Operation            | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
  20. ------------------------------------------------------------------------------------------
  21. |   0 | SELECT STATEMENT     |           |     2 |   118 |       |   123K  (1)| 00:24:37 |
  22. |*  1 |  COUNT STOPKEY       |           |       |       |       |            |          |
  23. |   2 |   VIEW               |           |  9549K|   537M|       |   123K  (1)| 00:24:37 |
  24. |   3 |    WINDOW SORT       |           |  9549K|   418M|   514M|   123K  (1)| 00:24:37 |
  25. |   4 |     TABLE ACCESS FULL| PASSENGER |  9549K|   418M|       | 12741   (1)| 00:02:33 |
  26. ------------------------------------------------------------------------------------------

  27. Predicate Information (identified by operation id):
  28. ---------------------------------------------------

  29.    1 - filter(ROWNUM<3)

  30. Note
  31. -----
  32.    - dynamic sampling used for this statement (level=2)


  33. 统计信息
  34. ----------------------------------------------------------
  35.         355  recursive calls
  36.        1693  db block gets
  37.       90381  consistent gets
  38.        2910  physical reads
  39.     3125196  redo size
  40.         866  bytes sent via SQL*Net to client
  41.         524  bytes received via SQL*Net from client
  42.           2  SQL*Net roundtrips to/from client
  43.           0  sorts (memory)
  44.           1  sorts (disk)
  45.           2  rows processed
复制代码

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
24#
 楼主| 发表于 2024-12-22 09:08 | 只看该作者
测试数据 dir2.zip (341.23 KB, 下载次数: 1)

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
25#
 楼主| 发表于 2024-12-22 09:20 | 只看该作者
知道了,是sql脚本字符集问题
我看普通版能用到hash join,第一个进阶版就用不到

  1. SQL> @ d:/explain.txt
  2. 已用时间:  00: 00: 00.06
  3. SQL> select * from table(dbms_xplan.display);

  4. PLAN_TABLE_OUTPUT
  5. ------------------------------------------------------------------------------------------------------------------------
  6. Plan hash value: 116653527

  7. -------------------------------------------------------------------------------------------
  8. | Id  | Operation             | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
  9. -------------------------------------------------------------------------------------------
  10. |   0 | SELECT STATEMENT      |           |  9549K|  1156M|       |   123K  (1)| 00:24:39 |
  11. |*  1 |  HASH JOIN RIGHT OUTER|           |  9549K|  1156M|       |   123K  (1)| 00:24:39 |
  12. |   2 |   VIEW                |           | 10000 |   664K|       |   150   (1)| 00:00:02 |
  13. |   3 |    WINDOW SORT        |           | 10000 |   537K|   680K|   150   (1)| 00:00:02 |
  14. |   4 |     TABLE ACCESS FULL | TRAIN     | 10000 |   537K|       |    14   (0)| 00:00:01 |
  15. |   5 |   VIEW                |           |  9549K|   537M|       |   123K  (1)| 00:24:37 |

  16. PLAN_TABLE_OUTPUT
  17. ------------------------------------------------------------------------------------------------------------------------
  18. |   6 |    WINDOW SORT        |           |  9549K|   418M|   514M|   123K  (1)| 00:24:37 |
  19. |   7 |     TABLE ACCESS FULL | PASSENGER |  9549K|   418M|       | 12741   (1)| 00:02:33 |
  20. -------------------------------------------------------------------------------------------

  21. Predicate Information (identified by operation id):
  22. ---------------------------------------------------

  23.    1 - access("P"."ARRIVAL_STATION"="TR"."ARRIVAL_STATION"(+) AND
  24.               "P"."DEPARTURE_STATION"="TR"."DEPARTURE_STATION"(+))
  25.        filter("P"."RN"<="TR"."S2"(+) AND "P"."RN">="TR"."S2"(+)-"TR"."SEAT_COUNT"(+
  26.               )+1)

  27. PLAN_TABLE_OUTPUT
  28. ------------------------------------------------------------------------------------------------------------------------

  29. Note
  30. -----
  31.    - dynamic sampling used for this statement (level=2)
  32. 已用时间:  00: 00: 00.12
  33. SQL> set pages 1000
  34. SQL> @ d:/explain-newkid-train1.txt
  35. 已用时间:  00: 00: 00.11
  36. SQL> select * from table(dbms_xplan.display);

  37. PLAN_TABLE_OUTPUT
  38. ------------------------------------------------------------------------------------------------------------------------
  39. Plan hash value: 3619472863

  40. ----------------------------------------------------------------------------------------------
  41. | Id  | Operation                | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
  42. ----------------------------------------------------------------------------------------------
  43. |   0 | SELECT STATEMENT         |           |     2 |   260 |       |    20   (0)| 00:00:01 |
  44. |*  1 |  COUNT STOPKEY           |           |       |       |       |            |          |
  45. |   2 |   NESTED LOOPS OUTER     |           |     3 |   390 |       |    20   (0)| 00:00:01 |
  46. |   3 |    VIEW                  |           |     1 |    59 |       |     1   (0)| 00:00:01 |
  47. |   4 |     WINDOW SORT          |           |  9549K|   418M|   514M|   123K  (1)| 00:24:37 |
  48. |   5 |      TABLE ACCESS FULL   | PASSENGER |  9549K|   418M|       | 12741   (1)| 00:02:33 |
  49. |*  6 |    VIEW                  |           |     3 |   213 |       |    19   (0)| 00:00:01 |
  50. |   7 |     WINDOW SORT          |           | 20000 |  1132K|  1424K|   313   (1)| 00:00:04 |
  51. |   8 |      MERGE JOIN CARTESIAN|           | 20000 |  1132K|       |    29   (0)| 00:00:01 |
  52. |   9 |       VIEW               |           |     2 |     6 |       |     4   (0)| 00:00:01 |
  53. |  10 |        UNION-ALL         |           |       |       |       |            |          |
  54. |  11 |         FAST DUAL        |           |     1 |       |       |     2   (0)| 00:00:01 |
  55. |  12 |         FAST DUAL        |           |     1 |       |       |     2   (0)| 00:00:01 |
  56. |  13 |       BUFFER SORT        |           | 10000 |   537K|       |   313   (1)| 00:00:04 |
  57. |  14 |        TABLE ACCESS FULL | TRAIN     | 10000 |   537K|       |    13   (0)| 00:00:01 |
  58. ----------------------------------------------------------------------------------------------

  59. Predicate Information (identified by operation id):
  60. ---------------------------------------------------

  61.    1 - filter(ROWNUM<3)
  62.    6 - filter("P"."RN"<="TR1"."S2"(+) AND "P"."RN">="S2"(+)-"SEAT_COUNT"(+)+1 AND
  63.               "P"."ARRIVAL_STATION"="TR1"."ARRIVAL_STATION"(+) AND
  64.               "P"."DEPARTURE_STATION"="TR1"."DEPARTURE_STATION"(+))

  65. Note
  66. -----
  67.    - dynamic sampling used for this statement (level=2)
  68. 已用时间:  00: 00: 00.07
复制代码

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
26#
 楼主| 发表于 2024-12-22 09:24 | 只看该作者
去掉最后的where rownum<3就走hash了

  1. SQL> @ d:/explain-newkid-train1.txt
  2. 已用时间:  00: 00: 00.01
  3. SQL> select * from table(dbms_xplan.display);

  4. PLAN_TABLE_OUTPUT
  5. ------------------------------------------------------------------------------------------------------------------------
  6. Plan hash value: 2487153927

  7. ---------------------------------------------------------------------------------------------
  8. | Id  | Operation               | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
  9. ---------------------------------------------------------------------------------------------
  10. |   0 | SELECT STATEMENT        |           |  9549K|  1183M|       |   155K  (1)| 00:31:07 |
  11. |*  1 |  HASH JOIN RIGHT OUTER  |           |  9549K|  1183M|  1624K|   155K  (1)| 00:31:07 |
  12. |   2 |   VIEW                  |           | 20000 |  1386K|       |   313   (1)| 00:00:04 |
  13. |   3 |    WINDOW SORT          |           | 20000 |  1132K|  1424K|   313   (1)| 00:00:04 |
  14. |   4 |     MERGE JOIN CARTESIAN|           | 20000 |  1132K|       |    29   (0)| 00:00:01 |
  15. |   5 |      VIEW               |           |     2 |     6 |       |     4   (0)| 00:00:01 |
  16. |   6 |       UNION-ALL         |           |       |       |       |            |          |
  17. |   7 |        FAST DUAL        |           |     1 |       |       |     2   (0)| 00:00:01 |
  18. |   8 |        FAST DUAL        |           |     1 |       |       |     2   (0)| 00:00:01 |
  19. |   9 |      BUFFER SORT        |           | 10000 |   537K|       |   313   (1)| 00:00:04 |
  20. |  10 |       TABLE ACCESS FULL | TRAIN     | 10000 |   537K|       |    13   (0)| 00:00:01 |
  21. |  11 |   VIEW                  |           |  9549K|   537M|       |   123K  (1)| 00:24:37 |
  22. |  12 |    WINDOW SORT          |           |  9549K|   418M|   514M|   123K  (1)| 00:24:37 |
  23. |  13 |     TABLE ACCESS FULL   | PASSENGER |  9549K|   418M|       | 12741   (1)| 00:02:33 |
  24. ---------------------------------------------------------------------------------------------

  25. Predicate Information (identified by operation id):
  26. ---------------------------------------------------

  27.    1 - access("P"."ARRIVAL_STATION"="TR1"."ARRIVAL_STATION"(+) AND
  28.               "P"."DEPARTURE_STATION"="TR1"."DEPARTURE_STATION"(+))
  29.        filter("P"."RN"<="TR1"."S2"(+) AND "P"."RN">="S2"(+)-"SEAT_COUNT"(+)+1)

  30. Note
  31. -----
  32.    - dynamic sampling used for this statement (level=2)
  33. 已用时间:  00: 00: 00.09
复制代码

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
27#
 楼主| 发表于 2024-12-22 09:58 | 只看该作者
耳朵的

  1. SQL> @ d:/explain-nado.txt
  2. 已用时间:  00: 00: 00.10
  3. SQL> select * from table(dbms_xplan.display);

  4. PLAN_TABLE_OUTPUT
  5. ------------------------------------------------------------------------------------------------------------------------
  6. Plan hash value: 3095871065

  7. ----------------------------------------------------------------------------------------------
  8. | Id  | Operation                | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
  9. ----------------------------------------------------------------------------------------------
  10. |   0 | SELECT STATEMENT         |           |  4201M|   649G|       |   207M  (1)|690:55:12 |
  11. |   1 |  SORT ORDER BY           |           |  4201M|   649G|   728G|   207M  (1)|690:55:12 |
  12. |*  2 |   HASH JOIN RIGHT OUTER  |           |  4201M|   649G|  4560K|   173K  (7)| 00:34:39 |
  13. |   3 |    VIEW                  |           | 44000 |  4039K|       |   339   (2)| 00:00:05 |
  14. |   4 |     MERGE JOIN           |           | 44000 |  3910K|       |   339   (2)| 00:00:05 |
  15. |   5 |      SORT JOIN           |           |    88 |  1144 |       |     3  (34)| 00:00:01 |
  16. |   6 |       VIEW               |           |    88 |  1144 |       |     2   (0)| 00:00:01 |
  17. |*  7 |        COUNT STOPKEY     |           |       |       |       |            |          |
  18. |   8 |         TABLE ACCESS FULL| TRAIN     | 10000 |       |       |     2   (0)| 00:00:01 |
  19. |*  9 |      SORT JOIN           |           | 10000 |   761K|  1896K|   336   (1)| 00:00:05 |
  20. |  10 |       VIEW               |           | 10000 |   761K|       |   150   (1)| 00:00:02 |
  21. |  11 |        WINDOW SORT       |           | 10000 |   537K|   680K|   150   (1)| 00:00:02 |
  22. |  12 |         TABLE ACCESS FULL| TRAIN     | 10000 |   537K|       |    14   (0)| 00:00:01 |
  23. |  13 |    VIEW                  |           |  9549K|   655M|       |   123K  (1)| 00:24:37 |
  24. |  14 |     WINDOW SORT          |           |  9549K|   418M|   514M|   123K  (1)| 00:24:37 |
  25. |  15 |      TABLE ACCESS FULL   | PASSENGER |  9549K|   418M|       | 12741   (1)| 00:02:33 |
  26. ----------------------------------------------------------------------------------------------

  27. Predicate Information (identified by operation id):
  28. ---------------------------------------------------

  29.    2 - access("T1"."DEPARTURE_STATION"="T2"."DEPARTURE_STATION"(+) AND
  30.               "T1"."ARRIVAL_STATION"="T2"."ARRIVAL_STATION"(+) AND
  31.               "T1"."RN"="T2"."N"(+)+"T2"."SEAT_TMP"(+)/20)
  32.    7 - filter(ROWNUM<=88)
  33.    9 - access("T1"."SEAT_COUNT"*1.1>="T2"."N"*20)
  34.        filter("T1"."SEAT_COUNT"*1.1>="T2"."N"*20)

  35. Note
  36. -----
  37.    - dynamic sampling used for this statement (level=2)
  38. 已用时间:  00: 00: 00.09
复制代码

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
28#
 楼主| 发表于 2024-12-22 20:30 | 只看该作者
本帖最后由 〇〇 于 2024-12-23 09:08 编辑

我把我的等值连接的代码和newkid的在duckdb做了对比,都能hash join
1000车100w人
〇〇 3.108
newkid1 1.815s
newkid2 1.287s
10000车1000w人
〇〇 180s没出来
newkid2 107.867s
4G内存好像有些地址都坏了

  1. with p as (
  2.     select passenger.*
  3.           ,row_number() over(partition by departure_station,arrival_station order by passenger_id) rn ---- 为每组起终点的乘客编一个序号
  4.      from passenger)
  5. ,tr as (
  6.     select tr1.*
  7.           ,s2-chunk_count+lvl as chunk_id ---- 把每趟车复制成多行,每个分块一行,并进行编号
  8.           ,s2*20-chunk_count*20  as s1  ----- 本车次座位序号的下限,上限是s2
  9.        from (select train_id,departure_station,arrival_station,flag
  10.                   ,case when flag=0 then seat_count/20 else trunc(seat_count*0.1/20) end as chunk_count ---- flag=0为原车次记录,flag=1为无座票,容量只有10%, 这样排序时原车优先于无座
  11.                   ,sum(case when flag=0 then seat_count/20 else trunc(seat_count*0.1/20) end) over(partition by departure_station,arrival_station order by flag,train_id) as s2  ---- 把座位数按20分块,然后做滚动累计
  12.              from train t
  13.                   cross join (select 0 flag union all select 1 ) ---和两条记录的小集合做笛卡尔积,生成额外的车次记录
  14.              ) tr1
  15.           ,lateral(select i lvl from range(1,chunk_count::int+1)t(i))  ---- lateral view会把每一行数据复制成多行
  16. )
  17. select p.passenger_id,p.departure_station,p.arrival_station
  18.       ,tr.train_id
  19.       ,case when tr.flag=0 then ceil((p.rn-tr.s1)/100)::int end as coach_number ---- 算出车厢号
  20.       ,case when tr.flag=0 then
  21.             -- mod(p.rn-tr.s1-1,100)+1 ---得到1-100的编号
  22.             ceil((mod(p.rn-tr.s1-1,100)+1)/5)::int||SUBSTR('FABCE',mod(mod(p.rn-tr.s1-1,100)+1,5)::int+1,1)
  23.             when tr.flag=1 then ' no seat'
  24.        end as seat_number
  25.   from p left join tr on p.departure_station =tr.departure_station and p.arrival_station =tr.arrival_station
  26.        and ceil(p.rn/20) = tr.chunk_id  ----- 建立乘客序号和座位序号的映射关系,只需将乘客号除以20并座取整
  27. order by passenger_id;

  28. │ P00121772?   │ 杭州              │ 杭州96          │ G86?     │            3 │ 8C          │
  29. │ P00121772¢   │ 杭州              │ 杭州97          │ G86¢     │            3 │ 8C          │
  30. │ P00121772£   │ 杭州              │ 杭州98          │ G86£     │            3 │ 8C          │
  31. │ P00121772¤   │ 杭州              │ 杭州99          │ G86¤     │            3 │ 8C          │
  32. ├──────────────┴───────────────────┴─────────────────┴──────────┴──────────────┴─────────────┤
  33. │ 10000000 rows (40 shown)                                                         6 columns │
  34. └────────────────────────────────────────────────────────────────────────────────────────────┘
  35. Run Time (s): real 107.867 user 43.265625 sys 19.109375
复制代码


补充,速度慢是因为机器差,内存没有坏,是我生成数据用chr()的参数超过127了
在麒麟990上(8核)
newkid方法2 ,4线程 2.341s
newkid方法2 ,8线程 2.034s

使用道具 举报

回复
论坛徽章:
519
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
29#
发表于 2024-12-22 21:16 来自手机 | 只看该作者
我想了一种新写法,等有空写出来,也不知道能否改善。

使用道具 举报

回复
论坛徽章:
169
SQL数据库编程大师
日期:2016-01-13 10:30:43SQL极客
日期:2013-12-09 14:13:35SQL大赛参与纪念
日期:2013-12-06 14:03:45最佳人气徽章
日期:2015-03-19 09:44:03现任管理团队成员
日期:2015-08-26 02:10:00秀才
日期:2015-07-28 09:12:12举人
日期:2015-07-13 15:30:15进士
日期:2015-07-28 09:12:58探花
日期:2015-07-28 09:12:58榜眼
日期:2015-08-18 09:48:03
30#
发表于 2024-12-22 21:33 来自手机 | 只看该作者
newkid 发表于 2024-12-22 05:32
看完了那耳朵发给我的决赛答辩视频,我觉得他的冠 军就是靠嘴皮子挣来的,那真是,唾沫之星天上来,口若悬 ...

我也想初赛结束直接结束,奈何太卷

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表