讨论SELECT TOP N 问题
Hi, everyone:
本贴讨论SELECT TOP N问题.
现在正在一家计算机公司兼职,开发ASP应用. 在最近的一个商业项目里有这样一个需求:用户在查询时,只需要按照某(些)列排序后TOP 20的纪录. SQL SERVER 7很好地支持了TOP N 操作,但考虑到系统移植问题, 我又考虑在其他几个主流DBMSs中如何实现. 鉴于只有DB2 UDB 7,ORACLE 8i,SQL SERVER 7,本贴仅讨论这三个DBMS.
简单地说,TOP N问题就是:在SELECT中,仅选择按照某(些)列排序后TOP N的纪录. 考虑到等值问题,又可以分为两种: 一是仅仅返回N条纪录(M 1), 二是还包括所有于第N条等值的纪录(M 2). 当然最内层的子查询也可以有其他的子句, 或者TOP N也可以应用在没有ORDER BY的情况下,这样更简单.
1. SQL SERVER 7: 用 TOP N (WITH TIES)
M1:
SELECT TOP N * FROM MYTABLE ORDER BY ORD_COL;
M2:
SELECT TOP N WITH TIES * FROM MYTABLE ORDER BY ORD_COL;
注: SQL SERVER 7提供了PERCENT N WITH TIES, ACCESS 中提供了TOP N,但含义是M 2.
2. ORACLE 8i: 用 ROWNUMM1:
SELECT * FROM
( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
WHERE ROWNUMM2:
SELECT * FROM MYTABLE WHERE ORD_COL>=
(SELECT MIN(ORD_COL) FROM
( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
WHERE ROWNUMORDER BY ORD_COL DESC
注意以下两种错误用法:
WRONG 1:
SELECT * FROM MYTABLE
WHERE ROWIDORDER BY ORD_COL DESC;
WRONG 2:(因为WHERE ROWNUMSELECT * FROM MYTABLE
WHERE ROWNUMORDER BY ORD_COL DESC;
3: DB2
用FETCH FIRST N ROWS ONLY
M1:
SELECT * FROM MYTABLE
ORDER BY ORD_COL DESC
FETCH FIRST N ROWS ONLY
M2:
没有找到,因为DB2不允许在FROM中嵌套有ORDER BY子句的子查询.
还不清楚ORACLE的M 2有没有更好的办法,以及其他的DBMS如何实现TOP N操作,请其他朋友补充.

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

2024CSRankings 全国コンピューターサイエンス専攻ランキングが発表されました。今年、米国の最高のCS大学のランキングで、カーネギーメロン大学(CMU)が国内およびCSの分野で最高の大学の一つにランクされ、イリノイ大学アーバナシャンペーン校(UIUC)は6年連続2位となった。 3位はジョージア工科大学。次いでスタンフォード大学、カリフォルニア大学サンディエゴ校、ミシガン大学、ワシントン大学が世界第4位タイとなった。 MIT のランキングが低下し、トップ 5 から外れたことは注目に値します。 CSRankings は、マサチューセッツ大学アマースト校コンピューター情報科学部のエメリー バーガー教授が始めたコンピューター サイエンス分野の世界的な大学ランキング プロジェクトです。ランキングは客観的なものに基づいています

Windows リモート デスクトップ サービスを使用すると、ユーザーはコンピュータにリモート アクセスできるため、リモートで作業する必要がある人にとっては非常に便利です。ただし、ユーザーがリモート コンピュータに接続できない場合、またはリモート デスクトップがコンピュータの ID を認証できない場合、問題が発生する可能性があります。これは、ネットワーク接続の問題または証明書の検証の失敗が原因である可能性があります。この場合、ユーザーはネットワーク接続をチェックし、リモート コンピュータがオンラインであることを確認して、再接続を試行する必要がある場合があります。また、リモート コンピュータの認証オプションが正しく構成されていることを確認することが、問題を解決する鍵となります。 Windows リモート デスクトップ サービスに関するこのような問題は、通常、設定を注意深く確認して調整することで解決できます。時間または日付の違いにより、リモート デスクトップはリモート コンピューターの ID を確認できません。計算を確認してください

コンピュータを使用しているときに、オペレーティング システムが誤動作することがあります。今日私が遭遇した問題は、gpedit.msc にアクセスすると、正しいアクセス許可がない可能性があるためグループ ポリシー オブジェクトを開けないというメッセージがシステムから表示されることでした。このコンピュータ上のグループ ポリシー オブジェクトを開けませんでした。解決策: 1. gpedit.msc にアクセスすると、アクセス許可がないため、このコンピュータ上のグループ ポリシー オブジェクトを開けないというメッセージが表示されます。詳細: システムは指定されたパスを見つけることができません。 2. ユーザーが閉じるボタンをクリックすると、次のエラー ウィンドウがポップアップ表示されます。 3. ログ レコードをすぐに確認し、記録された情報を組み合わせて、問題が C:\Windows\System32\GroupPolicy\Machine\registry.pol ファイルにあることを確認します。

リモート デスクトップからローカル コンピューターにデータをコピーする際に問題が発生した場合は、この記事が問題の解決に役立ちます。リモート デスクトップ テクノロジを使用すると、複数のユーザーが中央サーバー上の仮想デスクトップにアクセスできるようになり、データ保護とアプリケーション管理が実現します。これにより、データのセキュリティが確保され、企業はアプリケーションをより効率的に管理できるようになります。ユーザーは、リモート デスクトップの使用中に問題に直面することがあります。その 1 つは、リモート デスクトップからローカル コンピューターにデータをコピーできないことです。これはさまざまな要因によって引き起こされる可能性があります。したがって、この記事では、この問題を解決するためのガイダンスを提供します。リモート デスクトップからローカル コンピュータにコピーできないのはなぜですか?コンピュータ上のファイルをコピーすると、そのファイルはクリップボードと呼ばれる場所に一時的に保存されます。この方法を使用してリモート デスクトップからローカル コンピュータにデータをコピーできない場合

クラスタリング アルゴリズムのクラスタリング効果評価問題には、特定のコード例が必要です クラスタリングは、データをクラスタリングすることによって、類似したサンプルを 1 つのカテゴリにグループ化する教師なし学習手法です。クラスタリングアルゴリズムでは、クラスタリングの効果をどのように評価するかが重要な問題となります。この記事では、一般的に使用されるいくつかのクラスタリング効果評価指標を紹介し、対応するコード例を示します。 1. クラスタリング効果評価指標 シルエット係数 シルエット係数は、サンプルの近さや他のクラスタとの分離度を計算することでクラスタリング効果を評価します。

jQuery.val() が使用できない問題を解決するには、具体的なコード例が必要です フロントエンド開発者にとって、jQuery の使用は一般的な操作の 1 つです。その中でも、.val() メソッドを使用してフォーム要素の値を取得または設定する操作は、非常に一般的な操作です。ただし、特定のケースでは、.val() メソッドを使用できないという問題が発生する可能性があります。この記事では、いくつかの一般的な状況と解決策を紹介し、具体的なコード例を示します。問題の説明 jQuery を使用してフロントエンド ページを開発する場合、時々次のような問題が発生します。

強力なパフォーマンスと多彩な機能で知られる iPhone は、複雑な電子機器によく見られる、時折起こる問題や技術的な困難を免れません。 iPhone の問題が発生するとイライラすることもありますが、通常は警報を発する必要はありません。この包括的なガイドでは、iPhone の使用に関連して最も一般的に遭遇する課題のいくつかをわかりやすく説明することを目的としています。当社の段階的なアプローチは、これらの一般的な問題の解決に役立つように設計されており、機器を最高の動作状態に戻すための実用的な解決策とトラブルシューティングのヒントを提供します。不具合やより複雑な問題に直面している場合でも、この記事はそれらを効果的に解決するのに役立ちます。一般的なトラブルシューティングのヒント 具体的なトラブルシューティング手順を詳しく説明する前に、役立つ情報をいくつか紹介します。

jQuery は、DOM 操作、イベント処理、アニメーション効果などを簡素化するために使用できる人気のある JavaScript ライブラリです。 Web 開発では、選択した要素のイベント バインディングを変更する必要がある状況によく遭遇します。この記事では、jQuery を使用して選択要素変更イベントをバインドする方法を紹介し、具体的なコード例を示します。まず、ラベルを使用してオプションを含むドロップダウン メニューを作成する必要があります。
