做矩阵1)关于sql语句
做个矩阵,其实就是个二维数组,关键是要从数据库里调些数据,sql语句不熟练,就边学边用,同步地记些笔记,方便查阅
关于distinct和order by 发了个帖子(第一次哦)
首帖:
用的是oracle的数据库
目的是想选出唯一的userid(原有重复值),并且按照filepos排序(原filepos是1,2,3.。。不重复的序号)
问题:以下语句都不能满足要求
1)select distinct userid from bbsfile where rootid=371841(不重复,但是没按顺序排)
2)select distinct userid,filepos from bbsfile where rootid=371841 order by filepos(按顺序排列,但是有重复)
3)select distinct userid from bbsfile where rootid=371841 order by filepos(语法出错)
就是想让出现重复值的一列按照没有重复值得一列排序
有一个简单的回复解决了问题
select userid from bbsfile where rootid=371841 group by userid order by min(filepos);
思考的角度变一下就出结果了,这里关键是用到了min 这么简单的就去掉了重复。
分析:distinct 只能选出后面跟的一串字所构成的行,让每一行都不相同。
但是,order by 后面的东西又必须出现在distinct 后面 。所以出现了上述问题。或许还有别的好的解决办法,暂没想到。
考虑时间:由于时间包括日期和时间,如果仅是filetime=xx年月日 返回空,to_char很好用,可以将时间转换为特定格式。
trunc(filetime)='15-10月-07' and to_char(filetime,'hh24') between 18 and 20 group by bbsuserid order by min(filepos)";
相关文档:
1. 说明:复制表(只复制结构,源表名:a,新表名:b)
SQL: select * into b from a where 1<>1;
2. 说明:拷贝表(拷贝数据,源表名:a,目标表名:b)
SQL: insert into b(a, b, c) select d, e, f from b;
&nb ......
安装前准备:
前言:
[学习SQL SERVER 2005系列]准备把学习2005的一些心得整理出来,和大家分享,共同学习一起提高。
安装准备:
1、SQL Server 2005 的各版本之间选择
大多数企业都在三个 SQL Server 版本之间选择:SQL Server 2005 Enterprise Edition、SQL Server 2005 Standard Edition 和 SQL Server 2 ......
作为备忘吧.在机房里输入的.
/*CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);*/
/*CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Credit SMALLINT,
&n ......
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:
MySQL: SUBSTR(), SUBSTRING()
Oracle: SUBSTR()
SQL Server: SUBSTRING()
最常用到的方式如下 (在这里我们用SUBSTR()为例):
SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始 ......
几个删除重复记录的SQL语句
2009-03-02 10:08
比如现在有一人员表 (表名:peosons)
若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来
select p1.* from persons p1,persons p2 where p1.id<>p2.id &nb ......