SQL Server 2008 - 我有一个包含10列和多行的表,其中我要删除条件,例如删除所有行,特别是列小于75个字符(大约10个单词)
答案 0 :(得分:2)
正如@ogixologist所说......
DELETE FROM table_name where len (column_name) < 75
在这里,我通过使用CTE检查出来!!!!!!!!!
;with cte
as
(
SELECT column_name, temp = LEN ( CAST ( column_name As nvarchar(4000) ) ) from table_name
)
delete from cte where temp<=75;
Len(column_name)
答案 1 :(得分:2)
最简单的解决方案是使用名为len
的SQL函数,如下所示:len(nameOffield)
在您的情况下,只需将函数添加到delete命令中的where子句,如下所示:
DELETE FROM yourTableName where len(aParticularColumn) < 75
更新回答:如果aParticularColumn
的数据类型为text
或ntext
,则可以使用DATALENGTH而不是len。在这种情况下,它将是
DELETE FROM yourTableName where DATALENGTH(aParticularColumn) < 75
答案 2 :(得分:0)
要实现这一目标,您可以使用以下方法 - 请按照上述步骤进行操作
temp table
与MAIN TABLE
和Insert
相同的temp table
中的所有记录
You can use INSERT INTO SELECT Statement
实现第一步CAST(varchar(75), [columnname])
会截断超过75个字符的数据。 truncate
主表和insert
从temp table
到主表的所有记录。