--判断一个字段重复就只显示一条,用distinct是不行的,可以用row_number()根据这个字段分组显示优先级,然后只取每个组的第一条select * from(select *,row_number() over(partition by 判断重复的字段名) as f_id from 表名) twhere f_id =1
成都创新互联服务项目包括湛河网站建设、湛河网站制作、湛河网页制作以及湛河网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,湛河网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到湛河省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
你可以只用这一条SQL
select * from Table
然后用mysql_num_rows() 获取记录数
select top 1 * from 表名
top 1 就是只取第一条
top 10 就是只取前十条
如果所用的数据库是
Microsoft
SQL
Server的话,对于这种所有字段完全相同的数据记录,是无法做到只删除一条的,因为数据库无法定位这些相同的记录中的某一条!
所以,如果执行删除的话,只有两种可能(具体看你所使用的SQL查询工具了):1)报错,无法删除,比如在SQL企业管理器中直接选中数据并做删除操作;2)相同的记录全部删除,比如用SQL查询分析器。
那么楼主的问题要如何解决呢,思路是这样:
1)去掉重复的:
select
distinct
*
into
#tmp
from
[tablename]
--将唯一性记录写入临时表
delete
from
[tablename]
--将原表数据清空(最好先备份一下原数据表)
insert
into
[tablename]
select
*
from
#tmp
--从临时表将数据插回
2)如果一定要数据重复,那请修改表[tablename]结构,增加一个[ID]字段,并让它自动增长,以便将相同记录区分开来。然后将需要重复的记录用如下语句重复插入:
insert
into
[tablename]
(字段列表-不包含那个ID字段)
select
(字段列表-不包含那个ID字段)from
[tablename]
where
[ID]=XXXX
(注:XXX是事先查到的需要重复的记录ID字段值)
GoodLuck!
希望对你能有所帮助。
SQL Server 查询最后一条记录有两种方法,一种是使用TOP命令,一种是使用LIMIT命令,具体方法如下:
1、使用TOP
SELECT TOP 1 * FROM user;
SELECT TOP 1 * FROM user order by id desc;
2、 使用LIMIT
SELECT * FROM user LIMIT 1;
SELECT * FROM user ORDER BY id ASC LIMIT 1;
SELECT * FROM user ORDER BY id DESC LIMIT 1;
扩展资料:
SQL函数
1、算数函数
ABS (数值),绝对值
MOD (被除数, 除数),求余
ROUND (对象数值, 保留小数的位数),四舍五入
2、字符串函数
CONCAT (字符串1, 字符串2, 字符串3),拼接
LENGTH (字符串),字符串长度
LOWER (字符串),小写
UPPER (字符串) ,大写
REPLACE (对象字符串,替换前的字符串,替换后的字符串),替换
SUBSTRING(对象字符串 FROM 截取的起始位置 FOR 截取的字符数),截取
参考资料来源:百度百科-SqlServer