繁体   English   中英

用省略号将nvarchar(max)截断为nvarchar(n)

[英]Truncate nvarchar(max) to nvarchar(n) with ellipses

将nvarchar(max)转换为nvarchar(n)并指示还有更多数据的最快方法是什么?

例如:将“地址”列转换为nvarchar(100),如果“地址”大于100个字符,则将后3个字符替换为“ ...”

UPDATE t
SET t.Address = SUBSTRING(t.Address, 1, 97) + '...'
FROM TableName t
WHERE LEN(t.Address) > 100;

ALTER TABLE dbo.TableName
  ALTER COLUMN Address NVARCHAR (100);
UPDATE Table
 SET [Address] =   CASE 
                       WHEN LEN([Address]) > 100 
                       THEN CAST([Address] AS NVARCHAR(97)) + N'...'
                       ELSE CAST([Address] AS NVARCHAR(100)) 
                   END

现在更改列的数据类型,因为以上语句之后所有超过100个字符的数据都将被截断。

ALTER TABLE TableName
ALTER COLUMN [Address] NVARCHAR(100)
GO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM