代码之家  ›  专栏  ›  技术社区  ›  Jamie Marshall

基本T-SQL向左传递变量

  •  0
  • Jamie Marshall  · 技术社区  · 6 年前

    这看起来很基本,但为什么不起作用?

    DECLARE @Test1 INT
    DECLARE @Test2 NVARCHAR
    SELECT @Test1 = CHARINDEX('_', 'x1Left_r2Right')-1
    SELECT @Test2 = LEFT('x1Left_r2Right', @Test1)
    PRINT @Test1
    PRINT @Test2
    

    @Test 在第二个选择中始终求值为1,即使它包含6。

    这是电流输出:

    6
    x
    

    我使用的是sql server 2014。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Squirrel    6 年前

    你宣布 @Test2 作为 NVARCHAR 没有尺寸。默认情况下,大小为1。所以你才会 x

    更改为 NVARCHAR(100)