将nvarchar(max)转换为nvarchar(n)并指示有更多数据的最快方法是什么?使用省略号将nvarchar(max)截断为nvarchar(n)
如:转换列地址来为nvarchar(100),如果地址大于100个字符,然后用替换最后3个字符“...”
将nvarchar(max)转换为nvarchar(n)并指示有更多数据的最快方法是什么?使用省略号将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
它不应该是'当LEN([地址])> 100'吗? – Lamak 2014-09-01 21:27:07
那么,这将是97个字符和“...”? – Lamak 2014-09-01 21:13:03
@Lamak是的,这是正确的 – James 2014-09-01 21:18:21
应该在字符数中包含尾部空格吗? – Laurence 2014-09-01 21:27:43