从字符串变量(TSQL)中查找字符索引



我正在尝试以下,但我不知道为什么我得到不同的结果。

SELECT CHARINDEX(' ', 'FIRSTNAME LASTNAME') -- returns 10 (expected output)
DECLARE @FULLNAME VARCHAR = 'FIRSTNAME LASTNAME'
SELECT CHARINDEX(' ', @FULLNAME) -- returns 0 

VARCHAR改成VARCHAR(50)

从MSDN

当数据定义或变量声明语句中未指定n时,默认长度为1。

'FIRSTNAME '被截断为'F',这就是为什么你得到0。

很确定这是无效的

DECLARE @FULLNAME VARCHAR = 'FIRSTNAME LASTNAME'

DECLARE @FULLNAME VARCHAR
SET @FULLNAME = 'FIRSTNAME LASTNAME'

最新更新