Questions tagged «null»

空取决于上下文,表示“无”或“未知”。对于特定于SQL的问题,请使用“ sql-null”标签。

11
检查null并分配另一个值的最短方法
我正在将varchar值从数据库中提取出来,如果要设置的话,string我想将其分配为“” null。我目前正在这样做: if (string.IsNullOrEmpty(planRec.approved_by) == true) this.approved_by = ""; else this.approved_by = planRec.approved_by.toString(); 似乎应该有一种方法可以像这样: this.approved_by = "" || planRec.approved_by.toString(); 但是,我找不到实现此目的的最佳方法。有没有更好的方法,或者我有最好的方法吗?

5
避免在PostgreSQL中被零除
我想在SELECT子句中执行除法。当我加入一些表并使用聚合函数时,我通常将null或零值用作分隔符。到目前为止,我只想出这种避免被零值和空值相除的方法。 (CASE(COALESCE(COUNT(column_name),1)) WHEN 0 THEN 1 ELSE (COALESCE(COUNT(column_name),1)) END) 我想知道是否有更好的方法?

2
如何在Doctrine查询中指定空值作为过滤器?
我在Zend中使用Doctrine 1.1。我正在尝试编写一个查询,该查询将返回在特定列中具有空值的记录。 $q = Doctrine_Query::create() ->select('a.*') ->from('RuleSet a') ->where('a.vertical_id = ?', null); $ruleset_names_result = $q->execute(array(), Doctrine::HYDRATE_ARRAY); 我在规则集表中有3条记录,在vertical_id列中具有NULL值,但查询未找到这些记录。 感谢帮助。 席德
79 php  null  doctrine  dql 

2
按ASC列排序,但先使用NULL值?
我需要按日期/时间字段升序对PostgreSQL表进行排序,例如last_updated。 但是,该字段允许为空或空,我想与空记录last_updated来之前,非空last_updated。 这可能吗? order by last_updated asc -- and null last_updated records first ??

10
值为空时使用Thymeleaf
我的数据库中有一些值,如果尚未输入,则可以为null。 但是,当我在HTML中使用Thymeleaf时,解析空值时会出现错误。 有什么办法可以解决这个问题?
78 html  null  thymeleaf 


8
标准使用“ Z”而不是NULL来表示丢失的数据?
除了是否应使用NULL之外,我还负责一个现有数据库,该数据库使用NULL表示“丢失或从未输入”数据。它不同于空字符串,它表示“用户设置了该值,并且他们选择了'空'”。 该项目的另一个承包商坚决主张“对于我来说不存在NULL;我从不使用NULL,并且任何人都不应使用NULL”。但是,令我困惑的是,由于承包商的团队确实承认“缺少/从未输入”和“故意空着或由用户指示为未知”之间的区别,因此他们在整个代码和存储过程中使用单个字符“ Z”表示“缺少/从未输入”,在整个数据库的其余部分中的含义与NULL相同。 尽管我们共享的客户要求更改此设置,而我也支持此要求,但是该团队将其称为比我更先进的DBA中的“标准做法”。他们不愿意仅根据我的无知请求更改为使用NULL。那么,有人可以帮助我克服我的无知吗?在SQL专家中,是否有任何标准或一小群人,甚至是一个大声的提倡使用“ Z”代替NULL的人? 更新资料 我有承包商的回应要补充。当客户要求删除特殊值以允许无数据列中的NULL时,他说的是这句话: 基本上,我设计数据库时要尽可能避免NULL。这是基本原理: •不需要在字符串[VARCHAR]字段中使用NULL,因为空(零长度)字符串会提供完全相同的信息。 • 整数字段(例如,ID值)中的NULL可以通过使用数据中永远不会出现的值(例如,整数IDENTITY字段为-1)来处理。 • 日期字段中的NULL会很容易导致日期计算复杂化。例如,在计算日期差异(例如[RecoveryDate]和[OnsetDate]之间的天数差异)的逻辑中,如果一个或两个日期为NULL,则逻辑将爆炸-除非为两个日期都明确允许为NULL。那是额外的工作和额外的处理。如果[RecoveryDate]和[OnsetDate]使用“默认”或“占位符”日期(例如“ 1/1/1900”),则数学计算可能会显示“异常”值-但日期逻辑不会爆炸。 传统上,NULL处理是开发人员在存储过程中犯错的领域。 在我作为DBA的15年中,我发现最好尽可能避免使用NULL。 这似乎证实了对该问题的大部分消极反应。不是使用公认的6NF方法来设计NULL,而是使用特殊值来“尽可能避免NULL”。我以开放的态度发表了这个问题,很高兴我了解到更多有关“空值有用/空值很邪恶”的辩论,但是现在我很乐意将“特殊值”方法标记为完全废话。 空(零长度)字符串将提供完全相同的信息。 不,不是。在我们正在修改的现有数据库中,NULL表示“从未输入”,空字符串表示“输入为空”。 传统上,NULL处理是开发人员在存储过程中犯错的领域。 是的,但是成千上万的开发人员已经犯下了数千次错误,而且避免这些错误的教训和警告也广为人知并记录在案。如此处所述:无论您接受还是拒绝NULL,缺失值的表示都是一个已解决的问题。无需仅仅因为开发人员不断犯下易于克服(且易于识别)的错误而发明新的解决方案。 作为一个脚注:我已经成为DBE和开发人员已有20多年了(对于我来说,足够时间了解数据库工程师和数据库管理员之间的区别)。在我的整个职业生涯中,我一直都处于“ NULL是有用的”阵营,尽管我知道几个非常聪明的人不同意。我对“特殊价值”方法非常怀疑,但是对“如何避免以正确方式避免NULL”的学术知识不够扎实。我一直喜欢学习新事物,而且20年后我仍然有很多东西要学习。感谢所有为此做出有益讨论的人。

13
捕获find的输出。-print0进入bash数组
使用find . -print0似乎是获得在bash的文件列表的唯一可靠的方式因含有空格,换行,引号等文件名的可能性 但是,我很难在bash或其他命令行实用程序中使find的输出有用。我设法利用输出的唯一方法是将其通过管道传输到perl,并将perl的IFS更改为null: find . -print0 | perl -e '$/="\0"; @files=<>; print $#files;' 本示例将打印找到的文件数,避免文件名中的换行符损坏计数的危险,如发生以下情况: find . | wc -l 由于大多数命令行程序不支持以空分隔的输入,因此我认为最好的办法是find . -print0像在上面的perl片段中所做的那样,在bash数组中捕获输出,然后继续执行任务,无论如何是。 我怎样才能做到这一点? 这不起作用: find . -print0 | ( IFS=$'\0' ; array=( $( cat ) ) ; echo ${#array[@]} ) 一个更普遍的问题可能是:如何使用bash中的文件列表来做有用的事情?
76 arrays  bash  null  find  delimiter 

3
为什么从Razor View接收POST请求时,我得到的是null而不是空字符串?
我以前没有值时会收到一个空字符串: [HttpPost] public ActionResult Add(string text) { // text is "" when there's no value provided by user } 但是现在我通过一个模型 [HttpPost] public ActionResult Add(SomeModel Model) { // model.Text is null when there's no value provided by user } 所以我必须使用?? ""运算符。 为什么会这样呢?

8
为什么Map.of不允许空键和值?
在Java 9,新的工厂方法已经出台了List,Set和Map接口。这些方法允许快速实例化一行中包含值的Map对象。现在,如果我们考虑: Map<Integer, String> map1 = new HashMap<Integer, String>(Map.of(1, "value1", 2, "value2", 3, "value3")); map1.put(4, null); 如果我们这样做,则上面的内容毫无例外地被允许: Map<Integer, String> map2 = Map.of(1, "value1", 2, "value2", 3, "value3", 4, null ); 它抛出: Exception in thread "main" java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:221) .. 我无法获得,为什么在第二种情况下不允许null。 我知道HashMap可以将null作为键和值,但是在Map.of的情况下为什么要限制它呢? java.util.Set.of("v1", "v2", null)和的情况相同java.util.List.of("v1", "v2", null)。

30
关系数据库中的空值可以吗?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 2个月前关闭。 改善这个问题 有一种流派认为在关系数据库中不应该允许空值。也就是说,表的属性(列)不应允许空值。来自软件开发背景,我真的不明白这一点。似乎如果null在属性的上下文内有效,则应允许该值。这在Java中非常普遍,在Java中对象引用通常为null。没有丰富的数据库经验,我想知道我是否在这里缺少什么。

12
如果equals(null)代替抛出NullPointerException是一个坏主意吗?
合同equals与问候null,如下: 对于任何非null的参考值x,x.equals(null)应使用return false。 这是很特殊的,因为如果o1 != null和o2 == null,那么我们有: o1.equals(o2) // returns false o2.equals(o1) // throws NullPointerException 这o2.equals(o1) throws NullPointerException是一件好事,因为它使我们意识到程序员的错误。但是,如果由于各种原因我们只是将其切换到o1.equals(o2),则该错误将不会被捕获,而这只会“静默失败”。 所以问题是: 为什么o1.equals(o2)不应该return false抛出一个好主意NullPointerException呢? 如果我们尽可能重写合同以改为anyObject.equals(null)始终抛出,那将是一个坏主意NullPointerException吗? 与比较 Comparable 相比之下,Comparable合同是这样说的: 请注意,null不是任何类的实例,并e.compareTo(null)应抛出NullPointerException,即使e.equals(null)回报false。 如果NullPointerException适合compareTo,为什么不适合equals呢? 相关问题 关于null的可比合同和比较合同 一个纯粹的语义论点 这些是Object.equals(Object obj)文档中的实际词语: 指示其他某个对象是否“等于”该对象。 什么是物体? JLS 4.3.1对象 一个对象是一个类的实例或阵列。 引用值(通常只是引用)是指向这些对象的指针,是一个特殊的null引用,它不引用任何对象。 从这个角度来说,我的论点非常简单。 equals测试其他对象是否“等于”this null参考没有给出其他测试对象 因此,equals(null)应该扔NullPointerException

6
检查LINQ的FirstOrDefault是否存在KeyValuePair
我有一个类型的字典 Dictionary<Guid,int> 我想使用条件返回满足条件的第一个实例 var available = m_AvailableDict.FirstOrDefault(p => p.Value == 0) 但是,如何检查我是否真的在找回KeyValuePair?我似乎无法使用!=或==在没有编译器错误的情况下检查default(KeyValuePair)。有一个类似的线程在这里并不十分似乎有一个解决方案。实际上,我可以通过获取密钥并检查Guid的默认值来解决我的特定问题,但是我很好奇是否可以通过keyvaluepair做到这一点。谢谢
75 c#  linq  null 

1
如果不检查{{object.field}}是否存在则出错
我有一个关于检查对象中是否存在某些字段的问题。 我想打印用户拥有的所有类别,因此我正在执行以下操作: <ul *ngIf="user.categories.length > 0" *ngFor="#category of user.categories"> <li> {{category.name}} </li> </ul> 原因?所有数据均已正确打印,但在Web控制台中出现如下错误: Cannot read property 'name' of null 但是当我做类似的事情时: <ul *ngIf="user.categories.length > 0" *ngFor="#category of user.categories"> <li *ngIf="category"> {{category.name}} </li> </ul> 那一切都好。 我是在做错什么,还是每次都要检查一下?您曾经遇到过这样的问题吗?

7
我可以使用NULL代替0值吗?
我可以使用NULL指针替代值0吗? 或这样做有什么问题吗? 例如,例如: int i = NULL; 代替: int i = 0; 作为实验,我编译了以下代码: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } 输出: 0 确实,它给了我这个警告,它本身是完全正确的: warning: initialization makes integer from pointer without a cast [-Wint-conversion] 但结果仍然相同。 我是否会由此陷入“不确定行为”? 可以这样使用NULL吗? NULL在算术表达式中用作数字值有什么问题吗? 在这种情况下,C ++的结果和行为是什么? 我已阅读的答案是什么NULL之间的区别,“\ 0”和0大约之间的区别是什么NULL,\0以及0是的,但我没有从那里简洁的信息,如果是很允许的,也是正确的使用NULL作为在赋值和其他算术运算中使用的值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.