2011-01-12 12 views
1

私はDBをAccessからSQLiteに変換しているため、すべてのSQLクエリも変換/デバッグする必要があります。この全体に来た:SQLiteでのアクセス "SELECT DISTINCTROW * FROM ..."と同等の機能は何ですか?

SELECT DISTINCTROW * FROM table WHERE column = value ORDER BY column2; 

SQLiteを使用して同等のクエリは何ですか?

+0

これは、Access 95より前のAccessアプリケーションからの偶然のSQLですか? Access 2以前では、SELECT DISTINCTROWがすべてのSELECTのデフォルトでした。 –

+0

わかりません。それは、DBを使用するアプリ内の1つの場所にしかありません。私がテストしたDBはAccess 95でした。 –

+0

間違ってはいけません:DISTINCTROWは素晴らしく、多くの編集可能性の問題を解決します。しかし、それは確かに非標準のSQLであり、あなたが解決し、編集可能性の問題が必要なときにのみ使用されるべきです。 –

答えて

3
SELECT DISTINCT * FROM table WHERE column = value ORDER BY column2; 

関与する唯一つのテーブル、DISTINCTようDISTINCTROW行為がありますので。

+3

...そういう意味では、何も使わない可能性が高いです。すべての単一の値が別のレコードの値と同じであるレコードの束がある場合は、データが不良です。なぜDISTINCTを使用しているテーブルにこれらの重複レコードがあるのか​​という疑問があります。テーブルにプライマリキーがある場合、SELECT DISTINCTはそれ自身でSELECTと異なるものを返さないため、キーワードなしでSELECTを使用する必要があります。 –

+0

@ David-W-Fentonお金の上には、データベースデザインの可能性があります。おそらくAccessからSQLiteへのこの転送は、うまくいったスキーマに向かうデータのクリーンアッププロセスの一部ですか? – MPelletier

+0

残念ながら今のところはありません。プロジェクトの主な焦点は、DBを使用するアプリケーションの変換ですが、DBを再設計することはまだ計画の一部ではありません。多分未来。いいだろう。 –

1

これに相当するのは、すべてのテーブルにキーがあり、ジョインと残りのクエリを正しく実装することです。そうすれば、DISTINCTROWのようなものは決して必要ありません。 DISTINCTROWはジェットからの愚かさの単なる遺産ではありません。

SELECT *は実践的ではありません。列を名前でリストします。

関連する問題