从 SQL 数据库中选择特定的行和列

Posted

技术标签:

【中文标题】从 SQL 数据库中选择特定的行和列【英文标题】:Select specific rows and columns from an SQL database 【发布时间】:2016-04-17 22:04:11 【问题描述】:

是否可以检索SQL query 中特定行的特定列?

假设我从名为my_tableSQL 表中选择名称为:a、b 的行,使用此查询文本:

"select * from my_table where row_names in ('a', 'b') order by row_names"

如何修改此查询文本以仅选择第 2、12、22、32、42 列而不是所有 1000 列?

【问题讨论】:

找出列 2,12,22,32,42 的名称并替换例如 col2,col12...col42 并将其替换为 * 行没有名字顺便说一句。 【参考方案1】:

将通配符* 替换为您要检索的列名。

但是请阅读有关 SQL 标准的文档。您不太可能需要一个表中的 1.000 列。

【讨论】:

【参考方案2】:

尝试阅读 sql,因为它确实做到了它所说的

select [column name 1, column name 2] 
from [table name] 
where [column name 3] in ('column value 1', 'column value 2')
order by [column name 3] 

请选择“列名1”和“列名2”的值 从表中称为“表名”的行 其中这些行在名为“列名 3”的列中的值等于“列值 1”和“列值 2”

【讨论】:

【参考方案3】:

是的。 SQL 用于从所需的行中选择所需的列。除非您定义了名为 row_names 的列(通常不这样做),否则数据行没有 row_names。在基本层面上,从 RDBMS 检索数据是通过如下构造的 SQL 语句:(这将是一个 SELECT 语句。最简单的版本具有以下子句)

    选择包含感兴趣数据的表(FROM 子句)。如果我们想要电话列表,我们可以查询 whitepages 表。 识别包含感兴趣数据的行(WHERE 子句)。这是通过对列值设置条件来完成的(没有行听者或行名)。我们想要姓氏为“海明威”的人的电话号码这里姓氏将是表中的一列,而不是行名。 选择我们要检索的数据列(SELECT 子句)。我们需要名字、姓氏和电话号码。

综合起来,我们可能有:

SELECT
    first_name,
    last_name,
    phone_number
FROM
    WhitePages
WHERE
    (last_name = "Hemingway")

在您的情况下,SELECT 语句将类似于:

SELECT
    <name of column 2>,
    <name of column 12>,
    <name of column 22>,
    <name of column 32>,
    <name of column 42>
FROM
    my_table
WHERE
    (<some_column_name> IN ('a', 'b'))
AND (<some_other_column_name> = <some_number>)
AND (<yet_another_column_name> = "<some_text>")
ORDER BY
    <a_selected_column>,
    <another_selected_column>

如果您要定期使用数据库,我建议您多学习一些关于 SQL 的知识,因为您很难在 SO 或其他网站上解决问题。

虽然您提到的 1000 列可能有些夸张,但 SQL 表通常不会有数百列。考虑让经验丰富的团队成员设计您的表和 SQL。

【讨论】:

【参考方案4】:

2 小鬼点 1. 单表1000列不利于RDBMS及其高度非规范化的表。 2. 行没有名字。

现在,如果您知道列的名称,请使用以下内容:

"select column_1,column_2 from my_table where primary_key_column in ('1','2');"

这里的 column_1,column_2 是您想要的列的名称。 primary_key_column 来唯一地定义您的行并在括号中定义您需要检索的所有主键。

如果您只知道列号,请使用以下方法检索列名:

"SELECT Column_name FROM user_tab_columns where table_name = 'MY_TABLE' and Column_id in (1,2,5);"

希望这会有所帮助。

供进一步参考 http://www.w3schools.com/sql/

【讨论】:

以上是关于从 SQL 数据库中选择特定的行和列的主要内容,如果未能解决你的问题,请参考以下文章

通过直接索引数据框来选择特定的行和列

sql截取字符串,作为表的行和列

Python - 如何在 Python 中从 Google 表格中读取特定范围的行和列?

选择特定行和列中的特定输入元素

请问如何获得GridView选中行的每一列的信息?

r shiny - DataTableOutput - 颜色特定的行和列