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

心不动则不痛 提交于 2019-12-02 02:22:03

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.

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!