sql 一个表其中一个字段有相同值,想把相同值的条目提取出来 怎么编查询?

来源:百度知道 编辑:UC知道 时间:2024/06/30 07:48:59
表名:SALE
字段:NO Pno
20070919A0010001 01
20070919A0010002 01
20070919A0020003 02
20070919A0020004 02
20070919A0030005 05
20070919A0040006 05
20070919A0060007 07
20070919B0010008 08

-----------------------------------------------------------------

想要的结果提取NO中 中间的不同数据列出
A001
A002
A003
A004
A006
B001
只要结果不要另外创建表,

这比较简单,值不了150分的啊,以后给分小心一些吧。
select DISTINCT substring("NO",9,4) from sale
这条语句的意思是指从字段NO中从第九位开始取,取后面的四位,用distinct唯一函数就可以把这四位唯一的列出来了。

楼主的意思不是排除重复查询吧,是要查询出重复吧,各位老大。

如果排除重复,楼上的DISTINCT 关键字,楼主去查手册就有详细资料了。

如果是要查询出重复,需要子查询,下面拿示例数据库Northwind做实验

Select * From Orders Where Exists(Select * From Orders AS Temp Where Temp.OrderID<>Orders.OrderID And Temp.CustomerID = Orders.CustomerID )
---------
Select * From 表 Where Exists(Select * From 表 AS Temp Where Temp.唯一标识<>表.唯一标识 And Temp.字段 = 表.字段 )

一定需要唯一标识,没有的情况下,可以临时建一个,不推荐大数据量使用此方法

select DISTINCT substring("NO",9,4) from sale

如果是MSSQL可以直接复制就用了

已经测试通过

select DISTINCT substring([NO Pno],9,4) from sale
这条语句的意思是指从字段NO中从第九位开始取,取后面的四位,用distinct唯一函数就可以把这四位唯一的列出来了

排出重复:select DISTINCT substring("NO",9,4) from sale
不排出重复:select substring("NO",9,4) from sale

二楼是个好心人啊,呵呵,完全正解