请问,在ACCESS或SQL中如何对NULL值处理?

ntcxh 2008-10-24 10:44:12
我现有一行SQL语名,数据库暂用ACCESS,在C++BUILDER中,写如下语句:
builder1->query1->sql->add("select * from table1 where 字段1 = '"+builder1->table2->fieldbyname("字段1")->Value+"'");
在此语句中,table的字段1值可为NULL;
请问上面的语句如何修改,多谢!
...全文
751 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
samchoy 2008-11-20
  • 打赏
  • 举报
回复
ACCESS中
SELECT IIF(ISNULL(F2),'NULL',F2) from table1
ntcxh 2008-10-27
  • 打赏
  • 举报
回复
多谢各位,看来是需要先判断了,本不想这样写,不知是否可有这样一条语句,比如:ISNULL(是的话就是"",不是的话就是其值).
海嵌 2008-10-24
  • 打赏
  • 举报
回复
String strTemp = "";
strTemp = builder1->table2->fieldbyname("字段1")->AsString;
builder1->query1->sql->add("select * from table1 where 字段1 = '"+strTemp+"'");
jxw1987628 2008-10-24
  • 打赏
  • 举报
回复
如果是那样?

你应该在加入查询语句前先判断Table2的字段1的值是否为Null

AnsiString strValue ="";
if(!Table2->FieldByName("字段1")->IsNull){
strValue =Table2->FieldByName("字段1")->AsString ;//看你的提示好像是字符串
}
else
{
//不知道你else的逻辑,,,,自己补上吧
}

AnsiString strSQL ="select........";//这里再组织你的sql语句!
//下面进行你的查询,代码我就不写了!

ntcxh 2008-10-24
  • 打赏
  • 举报
回复
上面的talbe指的是table2的字段1可为NULL值,没有写清楚。
TripH0101 2008-10-24
  • 打赏
  • 举报
回复
同意二楼的
路过路人乙 2008-10-24
  • 打赏
  • 举报
回复
同2楼,,在使用前需要先判断是否为NULL值..

NULL是个比较特殊的值..直接用" = "肯定是不行的..

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧