我正在尝试以下但我不知道为什么我会得到不同的结果。
SELECT CHARINDEX(' ', 'FIRSTNAME LASTNAME') -- returns 10 (expected output)
DECLARE @FULLNAME VARCHAR = 'FIRSTNAME LASTNAME'
SELECT CHARINDEX(' ', @FULLNAME) -- returns 0
答案 0 :(得分:1)
只需将VARCHAR
修改为VARCHAR(50)
。
FROM MSDN
如果未在数据定义或变量声明语句中指定n,则默认长度为1.
' FIRSTNAME LASTNAME'被截断为' F'这就是为什么你得到0。
答案 1 :(得分:0)
很确定这是无效的
DECLARE @FULLNAME VARCHAR = 'FIRSTNAME LASTNAME'
试
DECLARE @FULLNAME VARCHAR
SET @FULLNAME = 'FIRSTNAME LASTNAME'