【问题标题】:MS Access SQL, Rnd Function without numeric fieldMS Access SQL,没有数字字段的 Rnd 函数
【发布时间】:2012-02-19 14:03:57
【问题描述】:

是否可以在 Microsoft Access 查询中使用 Rnd() 函数而不指定数字列(例如,当我的主键包含字母字符时)并且仍然为每一行生成不同的随机数?

【问题讨论】:

    标签: sql ms-access random vba


    【解决方案1】:

    你可以使用第一个字符;

    rnd(asc(left([field],1)))
    

    这应该为每一行给出不同的结果,即使字符是相同的

    【讨论】:

    • 干杯亚历克斯,我已经发布了我自己的答案版本,但我会接受你的答案,因为它使用内置功能,而无需像我一样创建自定义函数:)
    【解决方案2】:

    比我原先想的要简单,这个函数可以用在和Rnd()一模一样的上下文中

    Public Function Rand(FieldName) As Single
    
        Rand = Rnd(1)
    
    End Function
    

    然后在SQL中用作:

    SELECT ID, Rand([ID]) FROM Table
    

    通过传递一个字段名,我们强制函数执行查询中的每一行(即使我们忽略了函数中的实际字段),然后将函数评估为 1 将始终以相同的方式返回不同的随机数如果在 VB 中执行,Rnd() 会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多