sql >> データベース >  >> RDS >> Oracle

データベースで重複する行を検索する

    これは、ほぼすべてのSQLダイアレクトで機能するはずです:

    SELECT last_name, first_name FROM names
    WHERE last_name IN (
        SELECT last_name FROM names GROUP BY last_name HAVING COUNT(*) > 1
    )
    

    ただし、次のような結果セットが得られます。

    Smith     Jack
    Smith     Joe
    Smith     Anna
    Sixpack   Joe
    Sixpack   Eve
    

    これを目的の形式のIMOで表示するための最も洗練されたソリューションは、あらゆる種類のあいまいなSQLスタントをプルするのではなく、クライアントアプリケーションでプログラムで結果セットを再配置することです。 (擬似コード)のようなもの:

    for each row in resultset
       if row[last_name] <> previous_last_name
          print newline, print last_name
       print ' '
       print first_name
    


    1. オペランドタイプの衝突:varcharは、暗号化されたデータベースに挿入しようとしているvarchar(50)と互換性がありません

    2. PHP/MySQLのより良いユーザー検索

    3. 列名を知らなくてもMysqlの結果を取得する

    4. Oracle:タイムスタンプに分を追加する方法は?