我正在使用在 gridview 上使用的查询来选择要显示的数据:
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 @productParam
AND ProductTheme.ThemeId = Theme.PK_Theme
AND COALESCE([THEME].[THEMETYPEID], 'null') LIKE @assignedParam
GROUP BY [Theme].[Name], [ThemeType].[Type], [Theme].[PK_Theme]
ORDER BY CASE WHEN [ThemeType].[Type] IS NULL THEN 0 ELSE 1 END, [Theme].[Name]
[THEME].[THEMETYPEID] 列以前是 varchar(50),但已更改为 int。
我现在收到此错误:
Conversion failed when converting the varchar value 'NULL' to data type int.
奇怪的一件事是我直接查询服务器上面的语句有效,(我改变了值的参数)但它在服务器控件中不起作用。
更新的列允许空值。如何在此 curcumstance 中检查 Null 是否为 int 并让查询像以前一样工作?
编辑如果两个参数都分配了“%”,我希望结果是这样的: