NULL 值处理遇到的错误问题.

查询会员表,在选择会员类型时,可选择全部,男会员,女会员.
F_SEX='',全选
F_SEX='F',
F_SEX='M'

SELECT * FROM TB_MEMBER WHERE
B_COLUMN=F_B
and (f_sex is null or (
f_sex is not null and sex= f_sex ))
或是
and (nvl(f_sex,'')='' or (nvl( f_sex ,'')<>'' and sex= f_sex ))

以上两种情况,都不能查询出想要的数据.
就是因为F_A 值为空而出问题,找不到原因.

最后把F_A 初值设置为
F_sex='ALL',F_sex='F',F_SEX='M'

.修改如下:
and (f_a='all'or (f_a is not null and sex=f_a))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Go 语言中,`rows.Scan` 方法可以用于将查询结果赋给指定的变量。如果查询结果中包含 `NULL` ,可以使用 `sql.NullString`、`sql.NullInt64`、`sql.NullFloat64` 等类型来处理。 以 `sql.NullString` 为例,可以使用以下代码来处理 `NULL` : ``` var name sql.NullString err := rows.Scan(&name) if err != nil { // 处理错误 } if name.Valid { // name 不是 NULL,可以使用 name.String 来获取它的 } else { // name 是 NULL } ``` 在这个例子中,我们首先定义了一个 `sql.NullString` 类型的变量 `name`,然后将它作为参数传递给 `rows.Scan` 方法。如果查询结果中的是 `NULL`,`name.Valid` 会被设置为 `false`,否则 `name.Valid` 会被设置为 `true`,并且可以使用 `name.String` 来获取它的。 如果查询结果中包含多个可能为空的字段,可以使用类似的方法来处理它们。例如,可以使用以下代码来处理包含多个字段的查询结果: ``` var ( name sql.NullString age sql.NullInt64 email sql.NullString ) err := rows.Scan(&name, &age, &email) if err != nil { // 处理错误 } if name.Valid { // name 不是 NULL,可以使用 name.String 来获取它的 } if age.Valid { // age 不是 NULL,可以使用 age.Int64 来获取它的 } if email.Valid { // email 不是 NULL,可以使用 email.String 来获取它的 } ``` 总之,在使用 `rows.Scan` 方法时,需要注意处理可能为空的,并且不要尝试将 `NULL` 转换为非空

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值