这看起来真的很基础,但是为什么这不起作用?
DECLARE @Test1 INT
DECLARE @Test2 NVARCHAR
SELECT @Test1 = CHARINDEX('_', 'x1Left_r2Right')-1
SELECT @Test2 = LEFT('x1Left_r2Right', @Test1)
PRINT @Test1
PRINT @Test2
如果按照我的逻辑,结果应为'x1Left',但是,似乎@Test
在第二个选择中始终评估为1,即使它包含6。
这是当前输出:
6
x
我正在使用sql-server 2014。
答案 0 :(得分:1)
您将@Test2
声明为NVARCHAR
,但没有大小。默认情况下,大小为1。这就是为什么只x
的第一个字符
更改为NVARCHAR(100)
,就可以了