这看起来真的很基本,但为什么这不起作用?
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上。
你声明@Test2
NVARCHAR
没有大小。默认情况下,大小为 1。这就是为什么你只得到第一个字符x
更改为NVARCHAR(100)
就可以