我有一个带有Comments字段的表格,我希望将每个记录中字符串的第一个字母大写,例如更改'复制'进入'复制'。有些记录在开始时已有资金,有些甚至可能是数字。
我试过这个
SELECT UPPER(LEFT(Comments,1))+SUBSTRING(Comments,2,LEN(Comments)) FROM dbo.Template_Survey
但它失败了,因为我的领域是一个  '类型。
能够在完全停止(句号)之后将第一个字母大写是有用的,但除非有人已经编写了代码,否则这不是必需的。
提前致谢。
答案 0 :(得分:2)
将您的ntext转换为nvarchar(max)并执行左上角和左侧操作。以下示例。
SELECT UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))))
FROM dbo.Template_Survey;
以下应该可以进行更新。
Update dbo.Template_Survey SET Comments =
UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))));
答案 1 :(得分:1)
将您的列转换为nvarchar(max)
这是工作示例
http://sqlfiddle.com/#!3/5dd26/3
要更新您可以使用的记录:
Update dbo.Template_Survey
set Comments = UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))))
答案 2 :(得分:0)
我的帖子有点晚了,但这个解决方案更短了。这适用于sql server 2008 +:
SELECT
UPPER(CAST(Comments as nchar(1)))+LOWER(STUFF(CAST(Comments as nvarchar(max)),1,1,''))
FROM dbo.Template_Survey