对SQL语句中的WHERE子句中遇到NULL值的参数绑定问题
现在我有一个SQL语句
SELECT NAME FROM TABLE WHERE COUNTRY=:mcountry
其中mcountry为绑定的变量
在给mcountry赋值的时候,当mcountry为空则赋mcountry=DBNull.Value
这样SQL语句实际上就变成了:
SELECT NAME FROM TABLE WHERE COUNTRY = NULL
这样是查不出来数据的。正确的应该是
SELECT NAME FROM TABLE WHERE COUNTRY IS NULL
但是我又不能将SQL语句改为
SELECT NAME FROM TABLE WHERE COUNTRY IS :mcountry
如果这样的话,那些mcountry值不为空的情况就不行了。
请问这个问题怎么解决啊?
[解决办法]
写个判断
if isnull(mcountry)=true then
SELECT NAME FROM TABLE WHERE COUNTRY is null
else
SELECT NAME FROM TABLE WHERE COUNTRY = ' " & mcountry & " '
end if
[解决办法]
写个带参数的存储过程,
或者把COUNTRY Is Null设定为= " "。
[解决办法]
要改先期生成的sql了
[解决办法]
SELECT NAME FROM TABLE WHERE COALESCE(COUNTRY, ' ') IS :mcountry
[解决办法]
加函数判断即可