SQLサーバー2012テーブル@Table1
に2つのユーザー定義テーブルタイプがあり、列名はColumnTable2
のColumnTable1
と@Table2
です。他のデータ型がNULLの場合、ユーザー定義のテーブル行を選択する方法
物理テーブルemployeeData
からデータを選択したいとします。この表には、両方の列(ColumnTable1
とColumnTable2
が入っています)があります。
@table1
と@table2
の両方にデータがある場合、両方のUDTの値が一致する場合は、employeeData
を返します。それらのうちの1つだけの場合は、そのテーブルから一致する値を返す必要があり、両方がnullの場合は、Employeedata
テーブルのすべてのデータを返す必要があります。
私はそれらの両方がうまく動作するクエリを試しましたが、それらはnullではありません。
SELECT * FROM employeeData WHERE
(((NOT EXISTS (SELECT 1 FROM @Table1) OR ColumnTable1 IN (SELECT
ColumnTable1 FROM @Table1)) AND (NOT EXISTS (SELECT 1 FROM @Table2)
OR ColumnTable2 in (SELECT ColumnTable2 FROM @Table2)))
PS:この例は、2つのテーブルのみです。今後同様のフィルタリングのためにこのようなユーザー定義テーブルを追加する必要があります。
は、あなたがサンプルデータセットと予想される出力を提供することができますしてみてください。私はこれがあなたの質問の第3段落を明確にするのに役立つと思います。 – scsimon