首页 > 解决方案 > TSQL 帮助 Microsoft SQL Server

问题描述

我在 sql server 2012 db 中有一个带有以下属性的平面表

recno整数, partvarchar(50), ipartvarchar(50), remarkvarchar(5)

表包含以下内容

在此处输入图像描述

样本数据

declare @t table

(recno int,part varchar(50),ipart varchar(50),remark int)

insert into @t

values
(2 ,'0343432','9141212'   ,7),
(3 ,'73442'  ,'000832'    ,8),
(4 ,'911212' ,'28832'     ,9),
(5 ,'009832' ,'00988'    ,10),
(6 ,'57292'  ,'11234'    ,11),
(7 ,'9141212','0343432'   ,2),
(8 ,'000832' ,'73442'     ,3),
(9 ,'28832'  ,'911212'    ,4),
(10,'00988'  ,'009832'    ,5),
(11,'11234'  ,'57292'     ,6)

数据设置具有双向关系..我想保留具有单向关系的数据(第 2-6 行)并删除第 7-11 行。任何帮助/指导将不胜感激。

问候,

标签: sqlsql-servertsql

解决方案


您的设计很糟糕,您可以删除这些行:

delete from myTable 
where try_convert(int, remark) > 0 and try_convert(int, remark) < recno;

链接到 SQLFiddle 示例

注意:您的图像具有 varchar 的注释。当它已经是 int 时,您不需要转换:

delete from myTable 
where remark > 0 and remark < recno;

推荐阅读