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

コンマ区切りテキストの列で一意の値を見つける

    すべてのコメントでほのめかされているテーブル設計の明らかな問題を無視し、これが巨大なテーブルでは非常に遅くなる可能性があることを受け入れると、次のようになります。

    最初に... すべての行を 1 つの巨大なコンマ区切りリストに変換するステートメントを作成します。

    DECLARE @tmp VarChar(max)
    SET @tmp = ''
    SELECT @tmp = @tmp + ColumnA + ',' FROM TableA
      

    次に、この SO 記事で説明されているテーブル値の udf 分割を使用して、その大量の文字列を明確な句を持つテーブルに戻して、一意であることを確認します。

    https://stackoverflow.com/a/2837662/261997

    SELECT DISTINCT * FROM dbo.Split(',', @tmp)
      

    1. テーブルに 100 を超える列がある場合にテーブルから特定の列を選択する方法

    2. OracleSQLのカスタムオーダー

    3. データベース内の一時レコードをスケーリングして合計をカウントし、オーバーサブスクライブを停止します

    4. テーブルの取得エラーは存在しませんが、テーブルは存在します(ActiveRecord ::StatementInvalid Mysql2 ::Error:テーブルは存在しません)