1  北京  Beijing Shi  110000  BJ
2  天津  Tianjin Shi  120000  TJ
3  河北  Hebei Sheng  130000  HE
4  山西  Shanxi Sheng  140000  SX
5  内蒙古  Nei Mongol Zizhiqu  150000  NM
6  辽宁  Liaoning Sheng  210000  LN
7  吉林  Jilin Sheng  220000  JL
8  黑龙江  Heilongjiang Sheng  230000  HL
9  上海  Shanghai Shi  310000  SH
10  江苏  Jiangsu Sheng  320000  JS
11  浙江  Zhejiang Sheng  330000  ZJ
12  安徽  Anhui Sheng  340000  AH
13  福建  Fujian Sheng  350000  FJ
14  江西  Jiangxi Sheng  360000  JX
我有这些数据,然后我还想加入一列最后的地址,比如解放路XX号。
这样的话用access要怎么做呢?

解决方案 »

  1.   

    --新增列
    ALTER TABLE table_name 
                ADD column_name datatypeaccess 取随机数方法
    同事要做 答题系统随机抽奖,原来是 SQL数据库的 今天是小型的 改成了access 找随机函数,问我 我也只记得有个rnd 呵呵 具体的也想不起来,网上搜搜了下 ,结果找到了这遍总结呵呵 不过也 想到了最简单的 方法 .
    select top 10 from judge order by rnd(judge_id)
    以下转贴:
    -----------------------------------------
    检查了一些贴子对于MS SQL数据库一般可以采用这样的语句:
    select top 50 * from someTable order by NewID()但是如果是Access数据库的话似乎没有什么好的解决方法。
    方法一:有人用如下代码以记录总数为极大值来首先提取出指定数量的随机数,然后以这些随机数做为记录ID。dim n,j
    dim su()
    dim a,b,k
    b=myrs.RecordCount
    Randomize
    redim su(index_N)
    su(1)=Int((b * Rnd) + 1)
    for n=2 to index_N
    a=Int((b * Rnd) + 1)
    for j=1 to n
    do while a=su(j)
    a=Int((b* Rnd) + 1)
    j=1 
    loop
    next
    su(n)=a
    next这种方式有一些问题,就是当ID不是连续的话,有可能某些随机数不存在ID序列当中。另外ID的最大值与总的记录值不一定相等,这样有些记录ID会永远被忽略。方法二:有人采用一条SQL语句解决此问题
    select top 50 * from table order by int(rand()*50)
    如果这条语句可行的话是个不错的方法。我测试这条语句并没有通过,如果有人知道是哪有问题请告诉我,非常感谢。方法三:有这样一种方法,我觉的不错。yourstr="*1*3*4*6*12*...."
    sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0"
    yourstr可以生成随机数多一点大于所限定抽取的随机数为好。这样可以排除记录不足的情况。方法四:<%
    n=10 ''取任意10条记录
    set rs = server.CreateObject ("adodb.recordset")
    sql = "select * from table"
    rs.open sql,conn,1,1
    count=rs.recordcount ''记录总数
    IF Count<>empty Then
    Randomize 
    for i = 1 to n ''循环n次
    num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
    rs.move num ''移到改随机行
    Response.write rs(0) ''出该条记录
    rs.movefirst ''别忘了再把指针移到第一条
    next
    End IF
    rs.close
    set rs = nothing
    %>
    今天研究了些取access数据库随机记录问题,这是这我自己搜集整理的方法。大家有没有高见,可以告诉我,或者我总结的东东本身有误,也可以帮我修正。
    检查了一些贴子对于MS SQL数据库一般可以采用这样的语句:
    select top 50 * from someTable order by NewID()但是如果是Access数据库的话似乎没有什么好的解决方法。
    方法一:有人用如下代码以记录总数为极大值来首先提取出指定数量的随机数,然后以这些随机数做为记录ID。dim n,j
    dim su()
    dim a,b,k
    b=myrs.RecordCount
    Randomize
    redim su(index_N)
    su(1)=Int((b * Rnd) + 1)
    for n=2 to index_N
    a=Int((b * Rnd) + 1)
    for j=1 to n
    do while a=su(j)
    a=Int((b* Rnd) + 1)
    j=1 
    loop
    next
    su(n)=a
    next这种方式有一些问题,就是当ID不是连续的话,有可能某些随机数不存在ID序列当中。另外ID的最大值与总的记录值不一定相等,这样有些记录ID会永远被忽略。方法二:有人采用一条SQL语句解决此问题
    select top 50 * from table order by int(rand()*50)
    如果这条语句可行的话是个不错的方法。我测试这条语句并没有通过,如果有人知道是哪有问题请告诉我,非常感谢。方法三:有这样一种方法,我觉的不错。yourstr="*1*3*4*6*12*...."
    sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0"
    yourstr可以生成随机数多一点大于所限定抽取的随机数为好。这样可以排除记录不足的情况。方法四:<%
    n=10 ''取任意10条记录
    set rs = server.CreateObject ("adodb.recordset")
    sql = "select * from table"
    rs.open sql,conn,1,1
    count=rs.recordcount ''记录总数
    IF Count<>empty Then
    Randomize 
    for i = 1 to n ''循环n次
    num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
    rs.move num ''移到改随机行
    Response.write rs(0) ''出该条记录
    rs.movefirst ''别忘了再把指针移到第一条
    next
    End IF
    rs.close
    set rs = nothing
    %>
    转自:http://www.cnpeople.net/blog/post/225.html