none
【SQL】根据条件如何查询出相关数据 RRS feed

  • 问题

  • 请问

    一下高手,如果不多分出一个表的话如何才能查询出指定数据呢?

    如何我要查询出type字段中不重复的数据,应该如何来做呢?

    首先我是这样写的:

    select distinct type from tb_type where url!=''  这样到是可以,由于我要绑定datalist控件,所以我还得必须查询出所在行的id字段。如果改成

    select distinct id, type from tb_type where url!=''  这样的话把数据都查出来了,与我题意不符。请教高手如何解决这个问题,谢谢!


    大连海参专卖 年底促销活动中 店铺地址:http://jinweb.taobao.com
    2011年1月3日 15:41

答案

  • 使用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
    2011年1月5日 2:26

全部回复

  • 使用select max(id),type from tb_type where url!='' group by type 就可以了,那么如果是三个字段SQL语句应该如何写呢? id,type,url  如果查询出这三个字段都不重复的数据,应该如何实现呢?请指教,谢谢
    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com
    2011年1月3日 16:39
  • select A.* from tb_type A WHERE NOT exists
     (select 1 from tb_type B WHERE B.ID<A.ID AND B.[tYPE]=A.[Type] and B.url=A.url)
    

    • 已建议为答案 Ai-hua Qiu 2011年1月4日 9:44
    • 取消建议作为答案 jinwb1982 2011年1月5日 2:21
    2011年1月4日 7: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.

    2011年1月4日 9:46
  • select A.* from tb_type A WHERE NOT exists
     (select 1 from tb_type B WHERE B.ID<A.ID AND B.[tYPE]=A.[Type] and B.url=A.url)
    


    感谢你的回答。你的方法不可行
    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com
    2011年1月5日 2:22
  • 你好,

    如果你使用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.

    感谢你的回答。我数据用使用的SQL2000 呵呵

    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com
    2011年1月5日 2:23
  • 使用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
    2011年1月5日 2:26