积极答复者
【SQL】根据条件如何查询出相关数据

问题
-
请问
一下高手,如果不多分出一个表的话如何才能查询出指定数据呢?
如何我要查询出type字段中不重复的数据,应该如何来做呢?
首先我是这样写的:
select distinct type from tb_type where url!='' 这样到是可以,由于我要绑定datalist控件,所以我还得必须查询出所在行的id字段。如果改成
select distinct id, type from tb_type where url!='' 这样的话把数据都查出来了,与我题意不符。请教高手如何解决这个问题,谢谢!
大连海参专卖 年底促销活动中 店铺地址:http://jinweb.taobao.com
答案
-
使用select max(id),type from tb_type where url!='' group by type 就可以了,那么如果是三个字段SQL语句应该如何写呢? id,type,url 如果查询出这三个字段都不重复的数据,应该如何实现呢?请指教,谢谢
煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com
问题已经解决。SQL语句如下:select min(id) as id, type,min(url) as url from tb_type where url!='' group by type 运行以后上图中的数据只查出下面这些。问题解决
其中解决这个问题的关键就是min(url) 刚开始想的是url是字符串类型,不能使用min max这样的函数,其实是可以使用的,只不过是按照字符串编码筛选最大最下数据。呵呵
181 调心滚子轴承 uploads/201004230918534816.jpg
137 角接触球轴承 uploads/201004230918534816.jpg
136 深沟球轴承 uploads/201004230918534816.jpg
172 圆柱滚子轴承 uploads/201004230918534816.jpg
煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com- 已标记为答案 jinwb1982 2011年1月5日 2:26
全部回复
-
你好,
如果你使用SQL Server 2005 或者以上版本,你可以参阅下面的语句:
CREATE TABLE tb_type ( ID INT, [Type] VARCHAR(20) ) GO INSERT INTO tb_type VALUES(1,'Test1') INSERT INTO tb_type VALUES(2,'Test1') INSERT INTO tb_type VALUES(3,'Test3') INSERT INTO tb_type VALUES(4,'Test4') GO -- SQL 2005 or above ;WITH CTE as( SELECT ID,[Type], ROW_NUMBER() OVER (PARTITION BY [Type] ORDER BY ID ) AS RO FROM tb_type ) SELECT * FROM CTE WHERE RO>1
谢谢,
邱爱华
Ai-hua Qiu[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
-
你好,
如果你使用SQL Server 2005 或者以上版本,你可以参阅下面的语句:
CREATE TABLE tb_type ( ID INT , [Type] VARCHAR (20) ) GO INSERT INTO tb_type VALUES (1,'Test1' ) INSERT INTO tb_type VALUES (2,'Test1' ) INSERT INTO tb_type VALUES (3,'Test3' ) INSERT INTO tb_type VALUES (4,'Test4' ) GO -- SQL 2005 or above ;WITH CTE as ( SELECT ID,[Type], ROW_NUMBER () OVER (PARTITION BY [Type] ORDER BY ID ) AS RO FROM tb_type ) SELECT * FROM CTE WHERE RO>1
谢谢,
邱爱华
Ai-hua Qiu[MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com -
使用select max(id),type from tb_type where url!='' group by type 就可以了,那么如果是三个字段SQL语句应该如何写呢? id,type,url 如果查询出这三个字段都不重复的数据,应该如何实现呢?请指教,谢谢
煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com
问题已经解决。SQL语句如下:select min(id) as id, type,min(url) as url from tb_type where url!='' group by type 运行以后上图中的数据只查出下面这些。问题解决
其中解决这个问题的关键就是min(url) 刚开始想的是url是字符串类型,不能使用min max这样的函数,其实是可以使用的,只不过是按照字符串编码筛选最大最下数据。呵呵
181 调心滚子轴承 uploads/201004230918534816.jpg
137 角接触球轴承 uploads/201004230918534816.jpg
136 深沟球轴承 uploads/201004230918534816.jpg
172 圆柱滚子轴承 uploads/201004230918534816.jpg
煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com- 已标记为答案 jinwb1982 2011年1月5日 2:26