实际项目中一些实用SQL
2017-05-03 19:21
337 查看
1.case when
SELECT
A .GUID AS PROD_GUID,
A .GDNAME,
A .GZCZNO,
A .PRODUCER,
(CASE A.GUID
WHEN '222E836FC33B477F8AB22CDE1565724A' THEN '已生成'
ELSE '新增' END)
as status
FROM
XT_PRODUCT_FBZ A,DOC_OTHER_LIC o
WHERE
A .GUID IN ('222E836FC33B477F8AB22CDE1565724A','333E836FC33B477F8AB22CDE1565724A','444E836FC33B477F8AB22CDE1565724A')
GROUP BY
A .GUID,
A .GDNAME,
A .GZCZNO,
A .PRODUCER
ORDER BY
A .GDNAME
2.查询嵌套表数据
SELECT
i.*
FROM
doc_other_lic D,
TABLE (D .imgpath) I
WHERE
d.guid='333DA5A53C444942A613430982868354'
3.在嵌套表中插入数据
INSERT INTO THE (
SELECT
IMGPATH
FROM
DOC_OTHER_LIC
WHERE
guid = '333DA5A53C444942A613430982868354'
)
VALUES
(
'https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=2507907452,1782106577&fm=58',
'',
'2',
'3',
'4',
'5'
);
4.查询所有嵌套证照类型和每一种的数量
SELECT
D .lictype AS TYPE,
COUNT (D .lictype) AS COUNT
FROM
doc_other_lic D,
TABLE (D .imgpath) I
WHERE
D .sup_guid = '1A0774CDEBDA425DBEDA3BBAAF58023E'
AND D .h
4000
osp_guid = '2333609FBB4442239A5A285462C39FB1'
and d.PROD_GUID is null
GROUP BY
D .lictype;
5.读取某几行的数据(像oracle不提供此功能,一般分页或读取特定行数据时使用)
select * from(
SELECT scg.PUST_GUID,scg.PUST_NAME,rownum no
FROM DOC_SUP_CUST s,DOC_SUP_CUST_GOODS scg,DOC_CHANGE_OTHER_LIC co,DOC_CHANGE_DOC c
WHERE
co.GUID = '8BC2651DEC474C7C8E0C16BB6574B690'
AND s.HOSP_GUID = c.HOSP_GUID
AND s.SUP_GUID = c.SUP_GUID
AND co.DOC_CHANGEGUID = c.GUID
AND s.GUID = scg.SUP_CUST_GUID
GROUP BY scg.PUST_GUID,scg.PUST_NAME,rownum)where no>1 and no<3;
6.简单存储过程及存储过程中的数组使用
declare
TYPE list_type IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
testlist list_type;
begin
FOR i IN 1 .. 3 LOOP
select PUST_GUID INTO testlist(i) from(
SELECT scg.PUST_GUID,scg.PUST_NAME,rownum no
FROM DOC_SUP_CUST s,DOC_SUP_CUST_GOODS scg,DOC_CHANGE_OTHER_LIC co,DOC_CHANGE_DOC c
WHERE
co.GUID = '3AD57E7B3D5C4569ACC588FA38895D92'
AND s.HOSP_GUID = c.HOSP_GUID
AND s.SUP_GUID = c.SUP_GUID
AND co.DOC_CHANGEGUID = c.GUID
AND s.GUID = scg.SUP_CUST_GUID
GROUP BY scg.PUST_GUID,scg.PUST_NAME,rownum)where no>i-1 and no<i+1 ;
END LOOP;
FOR i IN 1 .. testlist.count LOOP
Dbms_Output.put_line(testlist(i));
END LOOP;
end;
7.修改嵌套表数据
UPDATE THE (
SELECT
IMGPATH
FROM
DOC_OTHER_LIC
)
SET imagepath = '';
8.删除嵌套表数据
DELETE
FROM
THE (
SELECT
IMGPATH
FROM
DOC_OTHER_LIC
WHERE
guid='78ECAFBF1C144B7384EA6672A125CD81'
);
9.嵌套表去重
DELETE
FROM
THE (
SELECT
IMGPATH
FROM
doc_other_lic
WHERE
guid = '78ECAFBF1C144B7384EA6672A125CD80'
)
WHERE
ROWID NOT IN (
SELECT
MIN (i. ROWID)
FROM
doc_other_lic D,
TABLE (D .imgpath) i
WHERE
D .guid = '78ECAFBF1C144B7384EA6672A125CD80'
GROUP BY
i.imagepath
)
10.插入从另一张表查询出的数据
INSERT INTO DOC_CHANGE_OTHER_LIC c (
c.guid,
c.licobjtype,
c.lictype,
c.memo,
c.BEGRQ
)
SELECT
sys_guid(),
o.licobjtype,
o.lictype,
'CESHI22222222',
to_date('2015-1-30 12:20','YYYY-MM-DD HH24:MI')
FROM
DOC_OTHER_LIC o
WHERE
o.SUP_GUID = '1A0774CDEBDA425DBEDA3BBAAF58023E'
AND o.HOSP_GUID = '2333609FBB4442239A5A285462C39FB1'
AND o.lictype = '合同书'
未完待续。。。
SELECT
A .GUID AS PROD_GUID,
A .GDNAME,
A .GZCZNO,
A .PRODUCER,
(CASE A.GUID
WHEN '222E836FC33B477F8AB22CDE1565724A' THEN '已生成'
ELSE '新增' END)
as status
FROM
XT_PRODUCT_FBZ A,DOC_OTHER_LIC o
WHERE
A .GUID IN ('222E836FC33B477F8AB22CDE1565724A','333E836FC33B477F8AB22CDE1565724A','444E836FC33B477F8AB22CDE1565724A')
GROUP BY
A .GUID,
A .GDNAME,
A .GZCZNO,
A .PRODUCER
ORDER BY
A .GDNAME
2.查询嵌套表数据
SELECT
i.*
FROM
doc_other_lic D,
TABLE (D .imgpath) I
WHERE
d.guid='333DA5A53C444942A613430982868354'
3.在嵌套表中插入数据
INSERT INTO THE (
SELECT
IMGPATH
FROM
DOC_OTHER_LIC
WHERE
guid = '333DA5A53C444942A613430982868354'
)
VALUES
(
'https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=2507907452,1782106577&fm=58',
'',
'2',
'3',
'4',
'5'
);
4.查询所有嵌套证照类型和每一种的数量
SELECT
D .lictype AS TYPE,
COUNT (D .lictype) AS COUNT
FROM
doc_other_lic D,
TABLE (D .imgpath) I
WHERE
D .sup_guid = '1A0774CDEBDA425DBEDA3BBAAF58023E'
AND D .h
4000
osp_guid = '2333609FBB4442239A5A285462C39FB1'
and d.PROD_GUID is null
GROUP BY
D .lictype;
5.读取某几行的数据(像oracle不提供此功能,一般分页或读取特定行数据时使用)
select * from(
SELECT scg.PUST_GUID,scg.PUST_NAME,rownum no
FROM DOC_SUP_CUST s,DOC_SUP_CUST_GOODS scg,DOC_CHANGE_OTHER_LIC co,DOC_CHANGE_DOC c
WHERE
co.GUID = '8BC2651DEC474C7C8E0C16BB6574B690'
AND s.HOSP_GUID = c.HOSP_GUID
AND s.SUP_GUID = c.SUP_GUID
AND co.DOC_CHANGEGUID = c.GUID
AND s.GUID = scg.SUP_CUST_GUID
GROUP BY scg.PUST_GUID,scg.PUST_NAME,rownum)where no>1 and no<3;
6.简单存储过程及存储过程中的数组使用
declare
TYPE list_type IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
testlist list_type;
begin
FOR i IN 1 .. 3 LOOP
select PUST_GUID INTO testlist(i) from(
SELECT scg.PUST_GUID,scg.PUST_NAME,rownum no
FROM DOC_SUP_CUST s,DOC_SUP_CUST_GOODS scg,DOC_CHANGE_OTHER_LIC co,DOC_CHANGE_DOC c
WHERE
co.GUID = '3AD57E7B3D5C4569ACC588FA38895D92'
AND s.HOSP_GUID = c.HOSP_GUID
AND s.SUP_GUID = c.SUP_GUID
AND co.DOC_CHANGEGUID = c.GUID
AND s.GUID = scg.SUP_CUST_GUID
GROUP BY scg.PUST_GUID,scg.PUST_NAME,rownum)where no>i-1 and no<i+1 ;
END LOOP;
FOR i IN 1 .. testlist.count LOOP
Dbms_Output.put_line(testlist(i));
END LOOP;
end;
7.修改嵌套表数据
UPDATE THE (
SELECT
IMGPATH
FROM
DOC_OTHER_LIC
)
SET imagepath = '';
8.删除嵌套表数据
DELETE
FROM
THE (
SELECT
IMGPATH
FROM
DOC_OTHER_LIC
WHERE
guid='78ECAFBF1C144B7384EA6672A125CD81'
);
9.嵌套表去重
DELETE
FROM
THE (
SELECT
IMGPATH
FROM
doc_other_lic
WHERE
guid = '78ECAFBF1C144B7384EA6672A125CD80'
)
WHERE
ROWID NOT IN (
SELECT
MIN (i. ROWID)
FROM
doc_other_lic D,
TABLE (D .imgpath) i
WHERE
D .guid = '78ECAFBF1C144B7384EA6672A125CD80'
GROUP BY
i.imagepath
)
10.插入从另一张表查询出的数据
INSERT INTO DOC_CHANGE_OTHER_LIC c (
c.guid,
c.licobjtype,
c.lictype,
c.memo,
c.BEGRQ
)
SELECT
sys_guid(),
o.licobjtype,
o.lictype,
'CESHI22222222',
to_date('2015-1-30 12:20','YYYY-MM-DD HH24:MI')
FROM
DOC_OTHER_LIC o
WHERE
o.SUP_GUID = '1A0774CDEBDA425DBEDA3BBAAF58023E'
AND o.HOSP_GUID = '2333609FBB4442239A5A285462C39FB1'
AND o.lictype = '合同书'
未完待续。。。
相关文章推荐
- 实际项目中遇到的问题之SQL根据某一字段值相同合并字符串
- 项目中学到SQL语句中的一些常用技巧及函数
- SQL 获取一些实用信息的方法
- 一些实用SQL (持续更新)
- Agile software development(敏捷开发)在实际项目中应用的一些认识
- sql语句一些实用技巧for oracle
- WCF在项目实际生产中的引用方式以及一些引用建议及如何把svcutil.exe加载到VS中的tool中
- 实际项目中遇到的一些小问题
- 一些实用的 Java / C++ 开源项目整理
- 项目中一些sql的运用
- Oracle查询表主键、外键 项目中用到的一些Sql(oracle下的)
- sql server 中的一些实用的sql语句
- sql语句一些实用技巧for oracle
- 项目中linq to sql的一些用法
- 关于mysql中实用的修改表信息的一些sql
- 实际项目中的SQL语句
- 一些实用的开源项目
- SqlDataReader 操作 SqlServer image 列的一些实用方法
- 个人项目中一些 Mysql 常见SQL语句
- [整理]sql语句一些实用技巧for oracle