database - 只从数据库中选择一些行

标签 database ms-access select select-query

我有以下查询:

string Query = String.Format("SELECT ArticleName FROM tblArticles WHERE UserID={0} ORDER BY PostDate DESC", UserID);

我想为“ArticleName”获取不超过 3 个不同的值。
有可能这样做吗? (不选择所有“ArticleName”,只选择其中的 3 个?)

谢谢。

最佳答案

您需要说明您使用的是什么 RDBMS。 Mysql 和 sqlite 支持 LIMIT 指令,而其他系统可能支持也可能不支持 TOPFIRST 或其他类似指令。

更新:看看不同的 RDBMS 引擎如何支持它。请参阅 infinispan 的 TableManipulation.java 中的 getLoadSomeRowsSql() 方法.

这是万一链接失效了:

 switch (getDatabaseType()) {
    case ORACLE:
       loadSomeRowsSql = String.format("SELECT %s, %s FROM (SELECT %s, %s FROM %s) WHERE ROWNUM <= ?", dataColumnName, idColumnName, dataColumnName, idColumnName, getTableName());
       break;
    case DB2:
    case DB2_390:
    case DERBY:
       loadSomeRowsSql = String.format("SELECT %s, %s FROM %s FETCH FIRST ? ROWS ONLY", dataColumnName, idColumnName, getTableName());
       break;
    case INFORMIX:
    case INTERBASE:
    case FIREBIRD:
       loadSomeRowsSql = String.format("SELECT FIRST ? %s, %s FROM %s", dataColumnName, idColumnName, getTableName());
       break;
    case SQL_SERVER:
       loadSomeRowsSql = String.format("SELECT TOP (?) %s, %s FROM %s", dataColumnName, idColumnName, getTableName());
       break;
    case ACCESS:
    case HSQL:
    case SYBASE:
       loadSomeRowsSql = String.format("SELECT TOP ? %s, %s FROM %s", dataColumnName, idColumnName, getTableName());
       break;
    default:
       // the MySQL-style LIMIT clause (works for PostgreSQL too)
       loadSomeRowsSql = String.format("SELECT %s, %s FROM %s LIMIT ?", dataColumnName, idColumnName, getTableName());
       break;
 }

关于database - 只从数据库中选择一些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16211817/

相关文章:

java - 使用 Hibernate 进行分层数据版本控制的好的数据库设计是什么?

sql - 我如何执行此 SQL SELECT 语句?

sql-server - Select语句性能

mysql - 文件系统与数据库

database - Azure SQL 数据库订阅

mySQL 数据库创建/设计 - 不确定如何组织这样的数据

ms-access - MS Access VBA ADODB Recordset.打开表正常但 SQL 失败

c# - access 2007 是否可以与 30 个用户并行工作?

excel - 按工作表名称将多个工作表从excel文件导入多个表

MySQL 查询选择过去 7 天的每一天的最后一条记录