【发布时间】:2016-06-21 13:34:55
【问题描述】:
我想从字符串列表中进行选择,并将其指定为我的SELECT 的其中一列的值。
类似于以下内容:
SELECT id, name, GET_RANDOM_TYPE('Basic', 'Silver', 'Gold', 'Premium') AS type
FROM tbl
我只是在做一些测试,所以我需要这个。
【问题讨论】:
我想从字符串列表中进行选择,并将其指定为我的SELECT 的其中一列的值。
类似于以下内容:
SELECT id, name, GET_RANDOM_TYPE('Basic', 'Silver', 'Gold', 'Premium') AS type
FROM tbl
我只是在做一些测试,所以我需要这个。
【问题讨论】:
不太熟悉 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
【讨论】:
> 或<,所以它适用于我的查询。因为我从1-10随机。
使用您的值列表创建一个表,其中包含一个数字作为主键。
然后
Select your_text
from your_random_table
where ID = TRUNC(DBMS_RANDOM.value(1,10));
上面的语句会给你任何一个 10 个伪随机数,并假设你的表中有 10 个随机值。它不是真正随机的,但适用于测试。见here。
【讨论】: