如何显示表中的替代值,列具有值“M”和“F”(Oracle DB)

Posted

技术标签:

【中文标题】如何显示表中的替代值,列具有值“M”和“F”(Oracle DB)【英文标题】:How to display alternate values from a table, column having values 'M' and 'F' (Oracle DB) 【发布时间】:2017-01-06 05:03:30 【问题描述】:

在我的一次采访中被问到。

我有一个表,其中列值为 M 和 F,我想使用 SQL 查询在输出下方显示。

Row 1 'M'
Row 2 'F'
Row 3 'M'
Row 4 'F'
Row 5 'M'
Row 6 'F'
.
.
.
etc..

谢谢,

【问题讨论】:

但是你有相同数量的男性和女性记录吗?如果不是这种情况会发生什么? 请尝试向我们展示您的查询并询问您在哪里遇到了逻辑问题,而不是要求我们做您的工作。 @ Tim :- 是的,M 和 F 的数量是一样的。 @Vimal:- 我没有要向您展示的查询,但我想下面的查询将按照以下帖子中的建议工作 SELECT owner,decode(to_char(mod(ROWNUM,2)), '0','M','1','F') FROM all_objects WHERE ROWNUM 【参考方案1】:

试试这个查询,它会根据备用行返回 M 或 F

SELECT owner,decode(to_char(mod(ROWNUM,2)),'0','M','1','F') FROM all_objects WHERE ROWNUM

【讨论】:

谢谢,这很有道理。【参考方案2】:

假设表结构如下

create table test(
  gender char(1),
  name   varchar(50)
);

您的查询应如下所示

select 'Row '||rownum||' '||chr(39)||gender||chr(39) result_data from test;
rownum 给出数字 1、2、3 等。 chr(39) 是单引号字符 ' || 用于字符串连接

结果应该是

Row 1 'M'
Row 2 'F'
Row 3 'M'
Row 4 'F'
Row 5 'M'
Row 6 'F'

【讨论】:

以上是关于如何显示表中的替代值,列具有值“M”和“F”(Oracle DB)的主要内容,如果未能解决你的问题,请参考以下文章

如何根据列中的逗号分隔值进行选择

使用 JavaScript,如何在具有多个值的日期列的表中突出显示“今天”的每个日期

如何将具有多个值的列加载到表中的单独行中

如何从单个表中选择多个列值相同的行

如果 text.contain 使用 OR 函数,则 M 查询中的条件列

SQl Live:显示列的最小值,加上同一张表中的对应值,加上第二张表中的相关值