我今天遇到了与此类似的代码。
SELECT AuditDomain,
ObjectId,
AuditSubdomain = CONVERT(VARCHAR(50), NULL),
SubDomainObjectId = CONVERT(INT, NULL)
FROM Audit
似乎暗示数据类型信息可以与NULL值关联。这是否将元数据附加到将其标识为指定数据类型的NULL值?
这篇文章详细介绍了一种在SqlServer中查找数据类型的方法,但是当我尝试以下行时,它以NULL的形式返回:
SELECT CAST(SQL_VARIANT_PROPERTY(CONVERT(INT, NULL), 'BaseType') AS VARCHAR(20))
在SQL Server中,NULL
是INT
在默认情况下所有我能想到的场景。您可以使用以下代码确定这一点:
SELECT x = NULL INTO #x;
EXEC tempdb..sp_columns '#x';
结果:
TABLE_QUALIFIER TABLE_OWNER TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME
--------------- ----------- ---------- ----------- --------- ---------
tempdb dbo #x___... x 4 int
在将其放入表中或将其与某些上下文元数据相关联之前,这能为您带来什么?有什么区别呢它是INT
或者DATETIME
还是其他什么东西?您将如何处理这些信息?
SQL_VARIANT_PROPERTY``NULL
之所以返回,是因为它似乎需要元数据 和 值才有意义。观察(使用另一种类型只是为了混合它):
SELECT SQL_VARIANT_PROPERTY(NULL, 'BaseType');
DECLARE @x DATE;
SELECT SQL_VARIANT_PROPERTY(@x, 'BaseType');
DECLARE @y DATE = SYSDATETIME();
SELECT SQL_VARIANT_PROPERTY(@y, 'BaseType');
结果:
NULL
NULL
date
因此,为了准确确定基本类型,它似乎既需要类型 也 需要值。
至于为什么它如此工作, 耸耸肩 。您必须询问具有源代码访问权限的人员。
请注意,NULL
只有在强制使用SQL
Server时才需要采用基本类型:您已经基于该类型创建了一个表。在这种情况下(实际上在许多情况下,它不得不猜测您要表示的数据类型),SQLServer很可能会返回错误。避免这种情况的方法是不创建SQL Server不得不猜测的情况(这就是为什么我问您将如何处理此信息?)。
问题内容: 我在DB2中有此查询 如果is为,并且假设and为 Date 数据类型,它将大于的任何值吗? 请帮忙。提前致谢。 问题答案: 对于比较可以包含NULL值的值有用的另一个谓词是DISTINCT谓词。如果两列均包含相等的非null值,则使用普通的相等比较(COL1 = COL2)比较两列将为true。如果两个列都为null,则结果将为false,因为null永远不会等于任何其他值,甚至不会
问题内容: 我有一些代码可以返回新的iOS 10 / Swift 3 NSData替换(?)类型:数据 我想将此映像写入磁盘,但是此类不存在NSData的方法。它确实有一个方法,但是似乎不适用于文件路径(和附加组件)。 任何人都可以澄清一下我现在该如何做,就像Swift 2中的情况一样: 谢谢! 问题答案: 使用。 例如: 或者,如果您确实对坚持不懈,请将其转换为: 但是,通常,如今最好在整个代码
问题内容: 我需要布尔数组的紧凑表示形式,Python是否具有内置的位域类型,还是需要找到其他解决方案? 问题答案: 当我最近有类似需求时,Bitarray是我找到的最佳答案。它是C的扩展(比纯Python的BitVector快得多),并将其数据存储在实际的位域中(因此,内存效率是numpy布尔数组的八倍,后者似乎每个元素使用一个字节。)
问题内容: 有没有办法检查输入流()是否有数据? 从GO的初始stdin中读取帖子?显示了如何读取数据,但是不幸的是,如果没有数据通过管道传送到stdin中,则会阻塞。 问题答案: os.Stdin与其他任何“文件”一样,因此您可以检查其大小: 我将其构建为“管道”可执行文件,其工作方式如下:
我有一个数据类(如下所示) 在下面给出的另一个函数中,我将其作为参数调用 如何直接在kotlin中检查请求是否不为null?
问题内容: 我需要为正在使用的API 指定一个,但实际上不需要输出。Java是否具有等同于? 问题答案: 从Java 11开始,有一个静态工具可以完全满足您的需要,它是一个静态工厂方法: 返回一个丢弃所有字节的新OutputStream。返回的流最初是打开的。通过调用close()方法关闭流。随后对close()的调用无效。