大佬教程收集整理的这篇文章主要介绍了SQL Server:返回字符串过程INITCAP,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(我不会使用此解决方案)
您可以这样使用OUTPUT参数:
create proc INITCAP(@string varchar(30) OUTPUT)
as
begin
SET @string = UPPER(left(@string,1)) + LOWER(SUBSTRING(@string, 2, 8000))
end
go
declare @lastname varchar
set @lastname = 'MILLER'
exec INITCAP @lastname OUTPUT
declare @firstname varchar
set @firstname = 'StEvE'
exec INITCAP @firstname OUTPUT
:相反, 创建一个内联函数,因此:
CREATE FUNCTION dbo.CAPItalize1(@string varchar(30))
RETURNS table
AS
RETURN
SELECT UPPER(left(@string,1)) + LOWER(SUBSTRING(@string, 2, 8000)) AS Result;
用法:
UPDATE e
SET firstname = cap.Result
FROM Employee e
CROSS APPLY dbo.CAPItalize1(e.firstname) cap;
:另一个选项可能是标量函数with schemabinding
选项(出于性能原因):
CREATE FUNCTION dbo.CAPItalize2(@string varchar(30))
RETURNS VARCHAR(30)
WITH SCHEMABINDING
AS
BEGIN
RETURN UPPER(left(@string,1)) + LOWER(SUBSTRING(@string, 2, 8000));
END;
用法:
UPDATE Employee
SET firstname = dbo.CAPItalize2(firstname);
这就是我所做的。
create proc INITCAP(@string varchar(30))
as
begin
SET @string = UPPER(LEFT(@string,1)) + LOWER(RIGHT(@string,LEN(@string) -1))
end
declare @lastname varchar
set @lastname = exec INITCAP 'MILLER'
declare @firstname varchar
set @firstname = exec INITCAP 'StEvE'
UPDATE Employee SET firstname = @firstname,lastname = @lastname WHERE empID = 7934
我不断收到错误:
我该怎么办?我希望该过程INITCAP
像在Oracle中一样工作:返回一个名称,例如:“ Steve”,“ Miller”
以上是大佬教程为你收集整理的SQL Server:返回字符串过程INITCAP全部内容,希望文章能够帮你解决SQL Server:返回字符串过程INITCAP所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。