现有表t_task_vs_ip结构如下: task_ id start_ip end_ip 内容如下:1 0.0.0.0 0.0.0.12 192.168.0.1 192.168.0.1 2 192.168.0.13 192.168.0.132 192.168.0.16 192.168.0.16 要求经过查询以后变为:
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 10:02:24
现有表t_task_vs_ip结构如下: task_ id start_ip end_ip 内容如下:1 0.0.0.0 0.0.0.12 192.168.0.1 192.168.0.1 2 192.168.0.13 192.168.0.132 192.168.0.16 192.168.0.16 要求经过查询以后变为:
现有表t_task_vs_ip结构如下: task_ id start_ip end_ip 内容如下:
1 0.0.0.0 0.0.0.1
2 192.168.0.1 192.168.0.1
2 192.168.0.13 192.168.0.13
2 192.168.0.16 192.168.0.16
要求经过查询以后变为:
task_ id start_ip end_ip
1 0.0.0.0 0.0.0.1
2 192.168.0.1 192.168.0.16
这样的查询结果该如何实现呢?
现有表t_task_vs_ip结构如下: task_ id start_ip end_ip 内容如下:1 0.0.0.0 0.0.0.12 192.168.0.1 192.168.0.1 2 192.168.0.13 192.168.0.132 192.168.0.16 192.168.0.16 要求经过查询以后变为:
CREATE TABLE t_task_vs_ip (
task_id int,
start_ip varchar(15),
end_ip varchar(15)
);
GO
INSERT INTO t_task_vs_ip
SELECT 1,'0.0.0.0','0.0.0.1' UNION ALL
SELECT 2,'192.168.0.1','192.168.0.1' UNION ALL
SELECT 2,'192.168.0.13','192.168.0.13' UNION ALL
SELECT 2,'192.168.0.16','192.168.0.16'
GO
1> SELECT
2> task_id,MIN(start_ip),MAX(end_ip)
3> FROM
4> t_task_vs_ip
5> GROUP BY
6> task_id;
7> GO
task_id
----------- --------------- ---------------
1 0.0.0.0 0.0.0.1
2 192.168.0.1 192.168.0.16
(2 行受影响)