質問があります:
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
返されます。どうすればいいですか?NULL
NULL's are returned. I need both