pro*_*iot 0 sql sql-server sql-server-2008 sql-server-2008-r2
我在mssql2008中尝试这个:
declare @test nvarchar
set @test = '12345'
select 'true' where @test like '%3%' -- no results, condition fails
select 'true' where '12345' like '%3%' -- returns true, condition passes
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释为什么第一个选择语句不会返回任何结果吗?
更改
declare @test nvarchar
Run Code Online (Sandbox Code Playgroud)
至
declare @test nvarchar(10)
Run Code Online (Sandbox Code Playgroud)
所以回答你的问题,来自nchar和nvarchar(Transact-SQL)
如果未在数据定义或变量声明语句中指定n,则默认长度为1.如果未使用CAST函数指定n,则默认长度为30.