求 SQL解决正数和负数抵消的难题

dsywo 2012-10-25 01:54:35
给一个表,表中有一列字段是有正有负数据,怎么将该表中正数和负数一样的数据删掉,使结果依然相等了


大家快来帮帮忙吧!!
...全文
1132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2012-10-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

似乎这样才对
难点在于有 -5 -5 5 这样奇数个的情况下
SQL code
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([id] INT IDENTITY,[col] INT)
INSERT [tb]
SELECT 10 UNION ALL
SELECT 10 ……
[/Quote]

阿汤哥正解!
汤姆克鲁斯 2012-10-25
  • 打赏
  • 举报
回复
似乎这样才对
难点在于有 -5 -5 5 这样奇数个的情况下
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([id] INT IDENTITY,[col] INT)
INSERT [tb]
SELECT 10 UNION ALL
SELECT 10 UNION ALL
SELECT 10 UNION ALL
SELECT -10 UNION ALL
SELECT 6 UNION ALL
SELECT -8 UNION ALL
SELECT -6 UNION ALL
SELECT -6 UNION ALL
SELECT 5 UNION ALL
SELECT -6
--------------开始查询--------------------------
SELECT col FROM
(
SELECT [col],row_id=ROW_NUMBER() OVER(PARTITION BY [col] ORDER BY [id])
FROM [tb] WHERE [col]>0
EXCEPT
SELECT ABS([col]),row_id=ROW_NUMBER() OVER(PARTITION BY [col] ORDER BY [id])
FROM [tb] WHERE [col]<0
UNION ALL
SELECT [col],row_id=ROW_NUMBER() OVER(PARTITION BY [col] ORDER BY [id])
FROM [tb] WHERE [col]<0
EXCEPT
SELECT -[col],row_id=ROW_NUMBER() OVER(PARTITION BY [col] ORDER BY [id])
FROM [tb] WHERE [col]>0
) AS t
/*
col
5
10
10
-8
-6
-6
*/
發糞塗牆 2012-10-25
  • 打赏
  • 举报
回复
查出来了,删除自己写吧。另外你这个要求如果没有多一点的限制,容易出问题,不然如果是奇数的时候不就惨咯
CREATE TABLE test (id INT,title INT )
INSERT INTO test
SELECT 1, 3
UNION ALL
SELECT 2, -3
UNION ALL
SELECT 3, 4
UNION ALL
SELECT 4, 5
UNION ALL
SELECT 5, -4

SELECT aid FROM (SELECT a.id aid,b.id bid,a.title atitle,b.title btitle FROM test a cross JOIN test b ) a
WHERE atitle+btitle=0
/*
aid
-----------
2
1
5
3

(4 行受影响)
*/
dsywo 2012-10-25
  • 打赏
  • 举报
回复
table
id title
1 3
2 -3
3 4
4 5
5 -4
把id为1,2,3,5的删掉,懂?
發糞塗牆 2012-10-25
  • 打赏
  • 举报
回复
楼主举个例子来看看
dsywo 2012-10-25
  • 打赏
  • 举报
回复
嗯,这个怎么写?
[Quote=引用 1 楼 的回复:]

+5
-5
+3
-2
把+5和-5的记录删掉?
[/Quote]
开启时代 2012-10-25
  • 打赏
  • 举报
回复
+5
-5
+3
-2
把+5和-5的记录删掉?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧