私はSQLを学んでおり、このクエリに取り組んでいます:
SELECT
[Theme].[Name], [ThemeType].[Type]
FROM
[Theme]
LEFT OUTER JOIN
[ThemeType] ON [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType]
JOIN
[ProductTheme] ON [ProductTheme].[ThemeId]=[Theme].[PK_Theme]
WHERE
ProductTheme.ProductID LIKE '%'
AND ProductTheme.ThemeId = Theme.PK_Theme
AND COALESCE([THEME].[THEMETYPEID], 'null') LIKE '%[0-9]%'
ORDER BY
CASE WHEN [THEMETYPE].[TYPE] IS NULL
THEN 0
ELSE 1
END,
[THEMETYPE].[TYPE]
変数にする必要がある部分が 2 つあります。どちらも LIKE ステートメントです。
2番目のものは完璧に機能します。%、Null、または %[0-9]% に変更して、すべて、nullのみ、またはnull以外のみを取得できます
最初のものは、具体的に割り当てられている場合に正常に機能します。
WHERE ProductTheme.ProductID = 1
ただし、これを行うときは、これを可変にして、特定の数またはすべての数を許可する必要があります。
WHERE ProductTheme.ProductID LIKE '%'
私は繰り返しを得ています:
これを修正するにはどうすればよいですか?
編集: テーブルのサンプル データ:
テーマ表:
製品表:
製品テーマ表: