Why does SQL LEN function return '1' for a string with several characters?

后端 未结 3 1974
时光取名叫无心
时光取名叫无心 2021-01-22 00:36

Simple question - why when I print the value of the @len variable in the query below would I be getting the value 1, instead of 12 (the number of characters in the

相关标签:
3条回答
  • 2021-01-22 01:24

    Your declaration of @string is wrong. You have no length on the varchar.

    Try this:

    declare @string varchar(255);   -- or whatever
    

    You just learned that the default in this situation is 1.

    This is clearly specified in the documentation. As a further note, MS SQL seems to make this rather complicated:

    When n is not specified in a data definition or variable declaration statement, the default length is 1. When n is not specified when using the CAST and CONVERT functions, the default length is 30.

    The right habit is to always include the length when using varchar or nvarchar.

    0 讨论(0)
  • 2021-01-22 01:26

    Becvause varChar without a length specification is taken as varChar(1)

    replace varchar with varChar(30) or varChar(max)

    0 讨论(0)
  • 2021-01-22 01:31

    You need to give the variable @string an actual length. Print the variable @string and it will probably return 'C'.

    0 讨论(0)
提交回复
热议问题