access中查询出来值的为空,如何将空值改为0,具体表达式是啥,从啥地方输入表达式,多谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了access中查询出来值的为空,如何将空值改为0,具体表达式是啥,从啥地方输入表达式,多谢相关的知识,希望对你有一定的参考价值。

access中查询出来值的为空,如何将空值改为0,具体表达式是什么,从什么地方输入表达式,多谢查询出来的空值名称是工资3

可以用NZ函数进行转换 例如:

表达式:Nz(工资3,0)

查询设计视图编写表达式请参考下图:

追问

非常感谢

你好,在帮我看看,这个查询出来的为什么不能相加,是表达式错了吗

追答

看不太明白你需要达到的效果,请补充说明一下,并提供有关表的结构

参考技术A 你的问题是表达式里引用查询字段时,字段名称没加中括号

如何在 Protobuf-Net 中保留一个可为空值的数组?

【中文标题】如何在 Protobuf-Net 中保留一个可为空值的数组?【英文标题】:How can I persist an array of a nullable value in Protobuf-Net? 【发布时间】:2013-10-01 09:06:27 【问题描述】:

我正在从 BinaryFormatter 迁移到 Protobuf-net(到目前为止,它似乎在存储大小和反序列化时间方面都提供了巨大的改进)。

然而,我遇到的一个问题是 double?[] 数组不会以它们被序列化的相同形式反序列化。数组中任何为 null 的值都会被完全删除 - 即,如果我从一个包含 [null, null, 1, 2, 3, null] 的 6 个元素的数组开始,在反序列化之后我会得到一个 [1 , 2, 3]。对于我的程序,我必须以与序列化之前完全相同的形式检索这些数组 - 如果使用 BinaryFormatter 就会发生这种情况。

到目前为止,我提出的一个解决方案是为每个数组创建两个数组,一个是 double[],每个元素都有一个值,另一个是 bool[],它可以用来描述原始值是否为null - 但是由于各种原因,这非常低效。

我可以看到在之前的相关问题中提到,ProtoMember 可能有一个“SupportNull”选项,但是我找不到任何文档清楚地显示如何实现这一点,并且无法自己解决这个问题.

任何人都可以提供任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:
using ProtoBuf;
using ProtoBuf.Meta;
using System;
[ProtoContract]
class Foo

    [ProtoMember(1)]
    public double?[] Values  get; set; 

static class Program

    static void Main()
    
        // configure the model; SupportNull is not currently available
        // on the attributes, so need to tweak the model a little
        RuntimeTypeModel.Default.Add(typeof(Foo), true)[1].SupportNull = true;

        // invent some data, then clone it (serialize+deserialize)
        var obj = new Foo  Values = new double?[] 1,null, 2.5, null, 3;
        var clone = Serializer.DeepClone(obj);

        // check we got all the values back
        foreach (var value in clone.Values)
        
            Console.WriteLine(value);
        
    

【讨论】:

感谢 Marc 提供的优秀样品。但是最好有一个属性。实际上,在静态构造函数中设置它并不总是在反序列化时调用。然后我们必须将“SupportNull”设置在它应该在的类之外的其他地方。但这样做违背了良好编程的主要原则:高内聚和低耦合。【参考方案2】:

它实际上不支持开箱即用,您必须操纵RuntimeTypeModel 来明确设置它应该允许空值。

RuntimeTypeModel.Default[typeof(YourObjectType)][(tag)].SupportNull = true;

例子:

var nullable = new ObjectWithNullables()  IntArray = new int?[]  null, 1, 2, null  ;

// returns 2 elements out of 4
//var resultA = Deserialize<ObjectWithNullables>(Serialize<ObjectWithNullables>(nullable));

RuntimeTypeModel.Default[typeof(ObjectWithNullables)][1].SupportNull = true;

// returns 4 elements out of 4
var resultA = Deserialize<ObjectWithNullables>(Serialize<ObjectWithNullables>(nullable));


    [ProtoContract]
    public class ObjectWithNullables
    
        [ProtoMember(1)]
        public int?[] IntArray  get; set; 
    

【讨论】:

@user2262704 添加了我的意思的示例 其实是支持的。 @MarcGravell 刚刚找到了相同的解决方案 ^^ 更新了我的答案

以上是关于access中查询出来值的为空,如何将空值改为0,具体表达式是啥,从啥地方输入表达式,多谢的主要内容,如果未能解决你的问题,请参考以下文章

access 查询空值和null值的区别

怎么设置access查询中空值为0?

如何将SAS数据集中全部为空值的变量删除

sql 查询时有空值返回0怎么写

大数据之-HIVE入门(十七)

SQL 语句 把一个值为0的字段改为空('null')