我有一个表格和专栏[英文]我认为有一些长度为>的值50.我想将其插入到另一个表中,其中最大长度为50.
CREATE TABLE [dbo].[jlpt$]
(
[kanji] NVARCHAR (255) NULL,
[kana] NVARCHAR (255) NULL,
[english] NVARCHAR (255) NULL
);
如何找到这些行,还有一种方法可以将[English]
的值截断为50,以便列内容适合长度为(50)的列?
答案 0 :(得分:6)
要显示长度为[english]
列且大于50的行:
select *
from [dbo].[jlpt$]
where len([english]) > 50
将超出长度限制的人数截断为前50个字符:
update [dbo].[jlpt$]
set keyword = left([english], 50)
where len([english]) > 50
将值插入不同的表格:
INSERT INTO [dbo].[anothertable]
SELECT [kanji], [kana], left([english], 50)
FROM [dbo].[jlpt$]
来自手册
LEFT
返回具有指定字符数的字符串的左侧部分。
LEN
返回指定字符串表达式的字符数,不包括尾随空格。
如果您的列包含尾随空白,请改用DATALENGTH
函数。
如果您不关心检查和使用尾随空格,只需发出INSERT INTO ... SELECT
即可完成所有操作。