如何使用 SQL 查找表中的第一列和第一行

Posted

技术标签:

【中文标题】如何使用 SQL 查找表中的第一列和第一行【英文标题】:How to find a first column and first row in a table using SQL 【发布时间】:2009-05-12 15:37:13 【问题描述】:

我被问到这个问题,但无法得出答案。

有没有办法在表格的第一行和第一列找到条目?

(在矩阵表示法中,这将是[1,1]th 位置)

【问题讨论】:

输入表名需要动态sql语句吗? 我想问我是否不知道列名,在这种情况下是否可能.. 【参考方案1】:

简而言之:关系表不是矩阵。

在关系世界中,1'st row 仅在您在数据集上定义某些顺序时才有意义。没有“隐式第一记录”之类的东西。

假设您根据第一列的值对行进行排序,是这样的:

SELECT  column1
FROM    table
ORDER BY
        column1
LIMIT 1

还要注意表中不同的列属于不同的domains

拥有表的目的是在这些domains之间定义一些relation,这就是为什么整个东西被称为“关系数据库”,而表本身有时也被称为“关系”。

列顺序在关系表中也没有特殊含义。

假设您总是按名称引用列。

如果替换列的顺序会影响查询结果,则认为这是一个糟糕的设计。

SELECT *ORDER BY 1 之类的东西,但通常应该避免使用它们。

【讨论】:

【参考方案2】:

有很多与问题的“第一行”部分相关的良好反馈。但就“第一列”而言,您可以尝试以下选项之一:

    您可以使用数据库数据字典来获取表的第一列。例如,在 Oracle 中,查询将是:

    select column_name  
    from   user_tab_columns 
    where  table_name='YOUR_TABLE_NAME' 
    and    column_id=1
    
    1234563 /p>

【讨论】:

如何将数据插入表格的第一行第一列?【参考方案3】:

关系表没有定义的行顺序,因此没有第一行。您当然可以使用您的数据库提供的任何 LIMIT 等效项从查询中选择第一个结果。

当您在没有有序游标的情况下运行查询时,某些使用 ISAM 类型表的数据库会返回一致的行顺序,但删除和插入很容易改变这一点。

【讨论】:

【参考方案4】:

从概念上讲,SQL 表是无序的。您需要指定要排序的列,以使“第一行”的概念有意义。

如果您的 DBMS 支持 LIMIT,这很容易。

SELECT * FROM table ORDER BY column LIMIT 1

否则,您可以使用 TOP,但如果您的 order by column 有重复的 top item 值,您可能会得到比您要求的更多的行(取决于您的 DBMS,在 MS-SQL 中,它不会这样做,除非您指定 WITH TIES)。

SELECT TOP 1 * FROM Table ORDER BY column

【讨论】:

【参考方案5】:
Select top 1 Column1
From MyTable
Order by Column1

【讨论】:

【参考方案6】:

如果您要查找输入到表中的第一条记录,那么您需要在创建表时设置一个 DateEntered 字段,然后您可以通过搜索最早的日期来找到第一条记录。如果您有身份字段,则对身份字段进行排序是获取较早记录的一种方法,但您不能真正保证创建 ID 1 的事务确实比生成 ID 2 的事务更早插入到表中。您只知道该事务先开始,不先完成。使用日期字段是真正确定的唯一方法。这些年来,我学会了为这些东西设计,你不能在以后查询你一开始没有存储的信息。

【讨论】:

以上是关于如何使用 SQL 查找表中的第一列和第一行的主要内容,如果未能解决你的问题,请参考以下文章

如何在数据工厂中获取 CSV 的第一行和第一列值?

如何在熊猫中设置第一列和第一行作为索引?

滚动时如何锁定表格的第一行和第一列,可能使用 JavaScript 和 CSS?

如何在for和if循环中获取spark scala数据帧的最后一行的第一列值

css让表格第一列和第一行固定

想根据这张表的第一、二列和第一、三列作个饼状图,可显示出来的图总是一条直线,不会按比例分,求高手解