我有一张这样的桌子。
Name c1 c2 c3 c4
one 1 2 3 4
one 3 1 7 6
one 5 9 2 5
one 2 5 1 8
two 1 4 2 6
two etc.....
我想随机选择一个列,条件名称等于一。
结果应该是这样的..
c1 (This column will selected randomly)
1
3
5
2
答案 0 :(得分:3)
如何简单,
select <col_name> from <table_name> where name = 'one';
答案 1 :(得分:1)
select <col_name> from <table_name> where name = 'one' order by newid();
newid()函数调用的顺序将有助于随机化返回的行。
答案 2 :(得分:1)
SELECT <col_name> FROM <table_name> WHERE name = 'one' ORDER BY RAND() Limit 1
答案 3 :(得分:0)
由于我不了解您的DBMS,因此这是一个DBMS不可知查询,它将从您的表中随机选择一列:
SELECT
CASE round(3*rand()+1)
WHEN 1 THEN c1
WHEN 2 THEN c2
WHEN 3 THEN c3
WHEN 4 THEN c4
END;
FROM
<table_name>
WHERE
name = 'one'
<强>,其中强>
round()
是对其参数进行舍入的函数。
round(1.23) = 1
round(-1.58) = -2
和强>
rand()
是一个在v
范围内生成随机值0 <= v < 1.0
的函数。
rand() => 0.123687466
rand() => 0.996574545