我知道如果你要比较两种不同的类型,sql必须转换具有最低类型优先级的任何一方以匹配另一种类型。例如,在这种情况下,如果左侧是表中的列,则varchar = nvarchar,在进行比较之前,必须将整个集转换为nvarchar。
如果我们遵循相同的模式,使用"其中Bit_Column = 1",SQL必须先将位列转换为整数对吗?但是,当我查看执行计划时,SQL将文字转换为位而不是相反。
为什么会这样?
感谢
答案 0 :(得分:0)
SQL Server中有位常量:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/constants-transact-sql
在您的查询中,似乎1被解释为BIT常量。 不幸的是我找不到位和整数常量之间的区别。