如何使用sql从表中选择列?

时间:2013-02-06 06:34:24

标签: sql multiple-columns

我有一张这样的桌子。

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

4 个答案:

答案 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