合併最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其它方法。在SQL Server合併能够使用For Xml Path,在Oracle則能够使用wm_concat 或 ListAgg。準備數據:CREATE TABLE MyTest(xType NUMBER,City nvarch...
转载 2014-10-03 20:40:00
276阅读
2评论
最近在写一个sql文中碰到这么个需求:要求表hist按SERVICE_TYPE 的'SEX''SIM''AEX''AIM''ALL'这个自上而下的先后顺序排序,我参考了下网上诸位大大的一些方法.使用了以下方式:order byDECODE(hist.SERVICE_TYPE,'SEX','1','SIM','2','AEX','3','AIM','4','ALL','5');EXEC dbo.
转载 精选 2014-09-18 15:29:20
1739阅读
背景: 业务发展需要,需要复用历史的表,并且通过表里面原来一个未使用的字段来区分不同的业务。 于是想到通过default来修改的默认: alter table A modify column biz default 'old' comment '业务标识 old-老业务, new-新业务' 现象 ...
转载 2021-09-06 16:14:00
541阅读
2评论
原创 2022-07-15 14:12:06
29阅读
    在调试Oracle一个查询语句时出现:未明确定义 在这种情况下有可能存在的问题不是字段重命名的问题,而是在查询的中有重复的。例如: select A.*,rownum mynum from (        select ID,NAME,AGE,SEX,ADDR,TEL,AGE fro
原创 2016-01-26 11:07:38
5159阅读
有一个哥们提出一个问题: 有个表,创建时候的顺序是a,b,c 如何使用select * 的时候,让的显示顺序是a,c,b 而且任性地必须使用select *来查询,且不能重建表。 假设有个表test 按照其要求,应该是以下显示方式: 可以通过修改sys.col$表来改变表的顺序
转载 2016-06-22 21:43:00
950阅读
2评论
老师安排的作业要写一个东西 数据库要用oracle 设计的时候 想要 UID这一为自动增长的 因为学习不多所以就查了资料 留在这里以备忘记 ======================================= oracle不能在建表时定义自动增长的。 可以创建sequence(序列),然后在插入数据时,使用sequence进行自动增长。 CREATE TABLE MyT
原创 2012-10-07 03:43:24
1046阅读
有的时候数据比较敏感,不想让数据的显示出来,在12c可以隐藏SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- --------...
原创 2021-09-07 19:02:26
555阅读
ALTER TABLE TBWORKER DROP COLUMN WTUIJIAN;
l
原创 2022-11-24 19:40:14
98阅读
greatest 函数和least函数 select serverid, greatest(e.core0, e.core1, e.score2 ) from e  
转载 2017-08-22 09:12:00
312阅读
2评论
首先介绍两个函数:Oracle Least()函数Oracle Greatest()函数
原创 2022-07-26 06:04:03
2655阅读
http://www.itpub.net/thread-1768915-1-1.html问题:CREATE TABLE test(ob_id VARCHAR(32),ob_name VARCHAR(32));INSERT INTO test VALUES('A001','A001-a');INSER...
转载 2014-12-19 10:34:00
211阅读
下面是一个计算根据分子、分母计算百分比的函数 create or replace function getpercentage(fenzi number,                &
原创 2012-12-26 12:45:58
841阅读
mysql> select @rn := @rn + 1 as rownum, emp_no, dept_no, from_date, to_date -> from dept_emp, (select @rn := 0) a limit 20; +--------+--------+---------+------------+------------+ | rownum | em...
转载 2017-09-04 15:24:00
83阅读
2评论
  出现这种错误,一般是列名重复导致的,如下: create table testchar( v_date varchar2(20), d_date date)insert into testchar select '2018-07-20', date'2018-07-20' from dual;# 这时候有两个字段都是vv, 那么查询时,就会区分不出来这两,oracl...
原创 2021-08-24 15:28:09
6869阅读
散列表的实现常常叫做散(hashing)。散仅支持INSERT,SEARCH和DELETE操作,都是在常数平均时间执行的。需要元素间任何排序信息的操作将不会得到有效的支持。散列表是普通数组概念的推广。如果空间允许,可以提供一个数组,为每个可能的关键字保留一个位置,就可以运用直接寻址技术。当实际存储的关键字比可能的关键字总数较小时,采用散列表就比较直接寻址更为有效。在散列表,不是直接把关键字用
1、NULL是什么? NULL表示UNKNOW(未知),其不代表不论什么。比如一行没有不论什么即为NULL。 ORACLE同意不论什么一种数据类型的字段为空,除了下面两种情况: 1)主键字段(primary key), 2)定义时已经加了NOT NULL限制条件的字段 2、NULL有什么用
转载 2017-08-04 17:58:00
286阅读
2评论
期望效果:(我是拿到一对关系去另一表的一对关系去对比) select * From Empoylee Where (Address1,Address2) in (Select Address1,Address2 From EmpoyleeAdresses Where Country = 'Canada')以上无法实现 用这种方案也可以实现 不过速度很慢的 select * from
原创 2021-08-25 16:44:09
579阅读
//查询出重复了的select name from accp.first group by name having count(name)>2;
原创 2013-07-02 17:24:29
469阅读
GUID N VARCHAR2(40) N SYS_GUID() ...
转载 2021-08-18 16:52:00
271阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5