Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择字段数据的实际长度而不是字段大小_Sql_Sql Server_Trim_Dml - Fatal编程技术网

Sql 选择字段数据的实际长度而不是字段大小

Sql 选择字段数据的实际长度而不是字段大小,sql,sql-server,trim,dml,Sql,Sql Server,Trim,Dml,我有一个场景,其中我有一个表,其中有两列 Create Table Temp ( _id INT, Name VARCHAR(2000) ) INSERT INTO Temp VALUES (1,'') INSERT INTO Temp VALUES (2,'Mike Terri') SELECT * FROM Temp 当我在VB或C中使用Ado.NET进行选择时,它会将名称列的长度返回到2000,我只想获取包含的实际字符串的大小,我要做的事情是使用Trim函数,但在select

我有一个场景,其中我有一个表,其中有两列

Create Table Temp
(
  _id INT,
  Name VARCHAR(2000)
)

INSERT INTO Temp VALUES (1,'')
INSERT INTO Temp VALUES (2,'Mike Terri')

SELECT * FROM Temp
当我在VB或C中使用Ado.NET进行选择时,它会将名称列的长度返回到2000,我只想获取包含的实际字符串的大小,我要做的事情是使用Trim函数,但在select*场景中这是不可能的

您可以使用DATALENGTH函数作为:

SELECT _id,
       Name,
       DATALENGTH(Rtrim(Ltrim(Name))) as Length 
FROM Temp

希望这有帮助

您可以按如下方式使用Len功能:

SELECT *, LEN(Name) from Temp

从中选择LENNameTemp@Rishabh:问题是我正在为此列返回的大小设置文本框大小,如果此列有值,则它始终为该列返回2000长度,但我希望它返回实际字符串并修剪列中剩余的空白,然后在Vb.Net中从tempBut中选择MaxLtrimrTrimlName,C it数据集的对象它告诉Length=2000,我希望它限制为列在其中的最大字符数selection@DareDevil这似乎不是最好的做法。我想问一下,为什么您希望数据集反映数据信息而不是模式信息?