2016-09-27 4 views
0

の値を分離、我々は機能の分割種類を使用することによって成し遂げることができます。(3つの列はまた、我々が行うことができます!) しかし、機能を使用しなくても可能ということでしょうか?は、SQLに2つのカンマ区切り値を比較すると、SQL

例を挙げておきます。

enter image description here

問合せは、以下の条件

をチェックする必要があります

(1)計画されている卓上1からタスクを選択します。しかし、実行されていない列や拒否された列

(2)スプリット機能(UD機能)、またはカーソルを使用した唯一の必須タスク

を返すクエリより複雑な作りと、それは同様に時間を飲み込んれます。

これを成し遂げるために任意の代替解決策はありますか? 単一のクエリで可能ですか?

ありがとうございます。

+0

MySQLやSQLサーバ? – Jens

+1

*可能です* - はい - カンマで区切られた各値を別のテーブルの独自の行に入れてください。現在のデザインは、維持するのが難しくなるでしょう。 –

+0

@AlexK。 Okありがとう –

答えて

3

ませ特効薬はありません。実際にパフォーマンスを向上させたい場合は、これを正規化することができます(インデックスを付けることもできます)。また、より多くの標準クエリは分割機能なしで動作します。

実際の状況によっては、表示されているものとは異なる場合があります。私は、多くのタスクを含む '仕事'または 'プロジェクト'と思われるtable1に関連するすべてのタスクに対して1つの行を持つタスクテーブルを持っています。

ちょうどテーブルにいる彼らは、必須の列とタスクを計画減少し、完了していることを意味します。あなたは、このデータを正規化することができない場合は

あなたはおそらく、スプリット機能で立ち往生しています。非常に高速に動作するように見えるCLR関数を使用して分割関数から優れたパフォーマンスを得るための記事があります。

+0

このような古典的な銀色の弾丸...これは私にこのポストについてたくさん思い出させる:http://weblogs.asp.net/alex_papadimoulis/408925 – Hackerman

関連する問題