Tsql 为什么t-sql patindex不能与声明的变量一起工作?
为什么此查询无法正常工作Tsql 为什么t-sql patindex不能与声明的变量一起工作?,tsql,Tsql,为什么此查询无法正常工作 declare @s nvarchar set @s = 'abcd' select patindex('%b%', @s) 它是返回零。如果您在varchar的初始声明中添加一个大小,它就会工作: declare @s nvarchar(10) set @s = 'abcd' select patindex('%b%', @s) 如果您在varchar的初始声明中添加了一个大小,则它会起作用: declare @s nvarchar(10) set @s
declare @s nvarchar
set @s = 'abcd'
select patindex('%b%', @s)
它是返回零。如果您在varchar的初始声明中添加一个大小,它就会工作:
declare @s nvarchar(10)
set @s = 'abcd'
select patindex('%b%', @s)
如果您在varchar的初始声明中添加了一个大小,则它会起作用:
declare @s nvarchar(10)
set @s = 'abcd'
select patindex('%b%', @s)
这是因为如果不定义NVARCHAR变量的大小,它将默认为大小1。因此@s将只包含“a” 您需要始终小心,以确保明确定义大小,因为不同的场景的行为不同 所以,只要改变
DECLARE @s NVARCHAR
到(例如)
这是因为如果不定义NVARCHAR变量的大小,它将默认为大小1。因此@s将只包含“a” 您需要始终小心,以确保明确定义大小,因为不同的场景的行为不同 所以,只要改变
DECLARE @s NVARCHAR
到(例如)
我接受每一个有用的问题我接受每一个有用的问题+1-打败我!无论如何都会保留我的答案,因为它的指针指向类似的相关gotchas+1上的引用-比我快!无论如何,我都会保留我的答案,因为它指向类似的相关gotchas的引用