Sql server 2008 r2 在SQL Server中使用0和0x0有什么区别?

Sql server 2008 r2 在SQL Server中使用0和0x0有什么区别?,sql-server-2008-r2,sql-server-2012,Sql Server 2008 R2,Sql Server 2012,您好,我正在使用SQL Server 2012。最近,我正在努力从数据库的每个表中获取行数。我发现有4种不同的方法来获取行数,但我找到的最快的方法是使用分区统计信息,即“dm\u db\u Partition\u stats”和“sys.objects”。然而,在创建join时,我看到在where条件中使用了类似“is\u ms\u shipped=0x0”。我的问题是,使用“是否已发货=0”和“是否已发货=0x0”之间有什么区别?谁能帮我弄到这个吗?0x0是数据类型varbinary(1)和值

您好,我正在使用SQL Server 2012。最近,我正在努力从数据库的每个表中获取行数。我发现有4种不同的方法来获取行数,但我找到的最快的方法是使用分区统计信息,即“dm\u db\u Partition\u stats”和“sys.objects”。然而,在创建join时,我看到在where条件中使用了类似“is\u ms\u shipped=0x0”。我的问题是,使用“是否已发货=0”和“是否已发货=0x0”之间有什么区别?谁能帮我弄到这个吗?

0x0
是数据类型
varbinary(1)
和值
0x00
的文本。(所有位均设置为0的单个字节)

二进制数据类型具有相同的属性,因此如果与之比较,将隐式转换为该数据类型。导致
0


您应该只使用0,因为它避免了使用
0x0

0x0
的隐式转换和不必要的混淆。0x0是数据类型
varbinary(1)
和值
0x00
的文本。(所有位均设置为0的单个字节)

二进制数据类型具有相同的属性,因此如果与之比较,将隐式转换为该数据类型。导致
0


您应该只使用0,因为它避免了使用
0x0

时的隐式强制转换和不必要的混淆,ohh wow这是关于0和0x0的新内容。我已经检查了执行计划,但没有看到查询优化器生成的关于隐式\u转换的警告。它发生在编译时而不是运行时。无论您是否使用
=0
=0x0
该计划都有
=(0)
哦,哇,关于0和0x0的新内容。我已经检查了执行计划,但没有看到查询优化器生成的关于隐式转换的警告。它发生在编译时而不是运行时。无论您是否使用
=0
=0x0