【问题标题】:SQL Random String from List列表中的 SQL 随机字符串
【发布时间】:2016-06-21 13:34:55
【问题描述】:

我想从字符串列表中进行选择,并将其指定为我的SELECT 的其中一列的值。

类似于以下内容:

SELECT id, name, GET_RANDOM_TYPE('Basic', 'Silver', 'Gold', 'Premium') AS type
FROM tbl

我只是在做一些测试,所以我需要这个。

【问题讨论】:

    标签: sql oracle random


    【解决方案1】:

    不太熟悉 oracle,但也许您可以简单地将 round(dbms_random.value(1,4))CASE 表达式结合使用:

    SELECT id,
           CASE round(dbms_random.value(1,4)) 
                WHEN 1 THEN 'Basic' 
                WHEN 2 THEN 'Silver' 
                WHEN 3 THEN 'Gold' 
                WHEN 4 THEN 'Premium' 
           END AS type
    FROM table
    

    【讨论】:

    • 是的,这行得通。这与 Ravindra HV 的回答相同。你只是碰巧提供了查询。
    • 别在意我对 ROUND 的评价。它仍然需要它来工作。我使用的是><,所以它适用于我的查询。因为我从1-10随机。
    【解决方案2】:

    使用您的值列表创建一个表,其中包含一个数字作为主键。

    然后

    Select  your_text
    from your_random_table
    where ID = TRUNC(DBMS_RANDOM.value(1,10));
    

    上面的语句会给你任何一个 10 个伪随机数,并假设你的表中有 10 个随机值。它不是真正随机的,但适用于测试。见here

    【讨论】:

    • 有没有办法避免创建新表?
    猜你喜欢
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多