質問があります:
SELECT [Theme].[PK_Theme], [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 '%'
GROUP BY [Theme].[Name], [ThemeType].[Type], [Theme].[PK_Theme]
ORDER BY CASE WHEN [ThemeType].[Type] IS NULL THEN 0 ELSE 1 END, [Theme].[Name]
LIKEが存在する理由は、'%'実際には asp.net サーバー コントロールを使用してパラメータ化されているためです。
このクエリの結果は次のとおりです。

返されたすべてのデータを表示することはできませんが[Theme].[Name]、2 つのセグメント内でアルファベット順に並べられています。に関連付けられている主キーです。[ThemeType].[Type]NULL[Theme].[PK_Theme][Theme].[Name]
ThemeTypeIdテーブルが関連付けられる方法は、テーブルの主キーの外部キーであるという名前の列がテーマにあることThemeTypeです。
ここに私の問題があります。現在ThemeTypeIdはVARCHAR(50)データ型であり、INT. 問題は次のとおりです。
COALESCE([THEME].[THEMETYPEID], 'null')
これにより、次のエラーが発生します。
varchar値'NULL'をデータ型に変換するときに変換に失敗しましたint。
ただし、何も返されない場合は何も返されません。0 に変更すると、上記で以前に達成されたように NULL` と非 Null のみがnull返されます。どうすればいいですか?NULLNULL's are returned. I need both