Mal*_*alk 4 t-sql sql-server-2008
有人可以向我解释这个查询发生了什么吗?
select 99.foo
Run Code Online (Sandbox Code Playgroud)
它的行为与...相同
select 99 as foo
Run Code Online (Sandbox Code Playgroud)
要么
select foo = 99
Run Code Online (Sandbox Code Playgroud)
此外,它似乎只适用于整数.
将select 99.foo被翻译成select 99. as foo(你可以离开了别名前的空格),选择99年." 作为一个numeric.由于小数点后面没有数字,它只显示'99'.
您可以通过运行以下方式确认:
select sql_variant_property(99., 'BaseType')
Run Code Online (Sandbox Code Playgroud)
返回numeric.
这是不一样的select 99 as foo,这并选择"99",但作为一个int.这可以通过runnning确认:
select sql_variant_property(99, 'BaseType')
Run Code Online (Sandbox Code Playgroud)
返回int.
尽管所有三个查询看起来都是相同的,但第一个查询与返回值的类型中的下两个查询不同.