create PROCEDURE leftA
@strSource varchar(4000),@intNum int,
@returnvalue varchar(10) output
AS
set @returnvalue= left(@strSource,@intNumdeclare @m varchar(10)
exec lefta 'dddd',2,@m output'dd'
@strSource varchar(4000),@intNum int,
@returnvalue varchar(10) output
AS
set @returnvalue= left(@strSource,@intNumdeclare @m varchar(10)
exec lefta 'dddd',2,@m output'dd'
你想要什么效果?
//你没有定义长度
@strSource varchar,@intNum int,
@returnvalue varchar(10) output
AS
set @returnvalue= left(@strSource,@intNum)declare @m varchar(10)
exec lefta'123',3,@m outputSELECT @m
------结果为123
--取5位
@strSource varchar,@intNum int,
@returnvalue varchar(10) output
AS
set @returnvalue= left(@strSource,@intNum)declare @m varchar(10)
exec lefta'123',3,@m outputSELECT @m
------结果为123
大力你能得到这个结果吗?是不是有什么选项阿? Transact-SQL 参考
char 和 varchar
固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。注释
如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。
select @a='abcd'
select @a这样得语句在我的机器上得到的结果为:
'a'