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

问题描述 投票:0回答:4

我有一张这样的桌子。

姓名 c1 c2 c3 c4
一个 1 2 3 4
一个 3 1 7 6
一个 5 9 2 5
一个 2 5 1 8
两个 1 4 2 6
两个 等等......

我想随机选择一列,条件名称等于1。

结果应该是这样的:

c1(此栏将随机选择)
1
3
5
2
sql multiple-columns
4个回答
3
投票

简单一点怎么样,

 select <col_name> from <table_name> where name = 'one';

1
投票
select <col_name> from <table_name> where name = 'one' order by newid();

newid()函数调用的顺序将有助于随机化返回的行。


1
投票
      SELECT <col_name> FROM <table_name> WHERE name = 'one' ORDER BY RAND() Limit 1

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
© www.soinside.com 2019 - 2024. All rights reserved.