当前位置: 首页 > news >正文

网站开发技术有包括淄博seo费用

网站开发技术有包括,淄博seo费用,wordpress进度条源码,网站建设捌金手指花总十七系列文章目录 【SQL开发实战技巧】系列#xff08;一#xff09;:关于SQL不得不说的那些事 【SQL开发实战技巧】系列#xff08;二#xff09;#xff1a;简单单表查询 【SQL开发实战技巧】系列#xff08;三#xff09;#xff1a;SQL排序的那些事 【SQL开发实战技巧…系列文章目录 【SQL开发实战技巧】系列一:关于SQL不得不说的那些事 【SQL开发实战技巧】系列二简单单表查询 【SQL开发实战技巧】系列三SQL排序的那些事 【SQL开发实战技巧】系列四从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列五从执行计划看IN、EXISTS 和 INNER JOIN效率我们要分场景不要死记网上结论 【SQL开发实战技巧】系列六从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率记住内外关联条件不要乱放 【SQL开发实战技巧】系列七从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起 【SQL开发实战技巧】系列八聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表 【SQL开发实战技巧】系列九一个update误把其他列数据更新成空了Merge改写update给你五种删除重复数据的写法 【SQL开发实战技巧】系列十从拆分字符串、替换字符串以及统计字符串出现次数说起 【SQL开发实战技巧】系列十一拿几个案例讲讲translate|regexp_replace|listagg|wmsys.wm_concat|substr|regexp_substr常用函数 【SQL开发实战技巧】系列十二三问(如何对字符串字母去重后按字母顺序排列字符串如何识别哪些字符串中包含数字如何将分隔数据转换为多值IN列表?) 文章目录系列文章目录前言一、将分隔数据转换为多值IN列表二、按字母顺序排列字符串三、去重后按字母顺序排列字符串四、如何删除字符串中的字符保留数字总结前言 本篇文章讲解的主要内容是如何将分隔数据转换为多值IN列表、如何按字母顺序排列字符串、如何对字符串字母去重后按字母顺序排列字符串、如何删除字符串中的字符保留数字。 【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作毕竟SQL开发在数据分析场景非常重要且基础面试也会经常问SQL开发和调优经验相信当我写完这一系列文章也能再有所收获未来面对SQL面试也能游刃有余~。 一、将分隔数据转换为多值IN列表 工作中经常有这么一个场景用户通过前端页面传入了一个字符串列表如(CLARK,JONES,MARTIN),要求根据这个串查询相关用户信息。 开发人员需要你提供一个sql他嵌套到代码里面想直接把这个字符串传给这个sql然后做查询java代码如下你会怎么写 String strCLARK,JONES,MARTIN; String sqlselect * from emp where ename in(str);你要是用下面这种方式写那可能会被问候了 SQL select * from emp where ename in(CLARK,JONES,MARTIN);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------SQL 直接把CLARK,JONES,MARTIN带入肯定是查询不到数据的。 那该怎么实现 我们需要做个转换。把前端传过来的CLARK,JONES,MARTIN改写成CLARK,JONES,MARTIN然后再查询就能查到数据了 接下来还是用正则来做这个需求正则在这块有先天优势下面是我模拟的上面java代码传值的过程 SQL var v_name varchar2;SQL exec :v_name:CLARK,JONES,MARTIN;PL/SQL procedure successfully completedv_name --------- CLARK,JONES,MARTINSQL select *2 from emp3 where ename in (select regexp_substr(:v_name, [^,] ,1, level)4 from dual5 connect by level regexp_count(:v_name,,)1);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------7782 CLARK MANAGER 7839 1981-6-9 2450.00 107566 JONES MANAGER 7839 1981-4-2 2975.00 207654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30 v_name --------- CLARK,JONES,MARTIN为了便于理解我拿出来内部的查询结果以及对应伪列level给大家看看 SQL select regexp_substr(:v_name, [^,] ,1, level)as userss,level2 from dual3 connect by level regexp_count(:v_name,,)1;USERSS LEVEL -------------------------------------------------------------------------------- ---------- CLARK 1 JONES 2 MARTIN 3v_name --------- CLARK,JONES,MARTIN每行对应的正则表达式[^,]表示对应一个不包含逗号的字符串最后一个参数表示分别取第1、2、3三个串。 那么结合这个语句就可以达到需求。从上面结果看到原来v_nameCLARK,JONES,MARTIN是一个字符串而现在变成了三行了也就是对应CLARK,JONES,MARTIN了 这样子in(CLARK,JONES,MARTIN)就能正常查询到结果了 二、按字母顺序排列字符串 我现在有个需求想把emp表中的ename名称按照字母顺序排序如ADAMS-AADMS 怎么做 这么做 分两步 把ename拆分为单个字母显示。把多行数据合并为一行显示。 下面先处理一行数据 1、拆分 SQL select ADAMS as sour,regexp_count(ADAMS,[[:alpha:]]) as lev, regexp_substr(ADAMS,[[:alpha:]],1,level) as str2 from dual3 connect by levelregexp_count(ADAMS,[[:alpha:]])4 ;SOUR LEV STR -------------------------------- ---------- ---------------------------------------------------------------- ADAMS 5 A ADAMS 5 D ADAMS 5 A ADAMS 5 M ADAMS 5 S2、用listagg合并 SQL with t as2 (select ADAMS as sour,3 regexp_count(ADAMS, [[:alpha:]]) as lev,4 regexp_substr(ADAMS, [[:alpha:]], 1, level) as str5 from dual6 connect by level regexp_count(ADAMS, [[:alpha:]])7 )8 select sour, listagg(str) within group(order by str) as heb9 from t10 group by sour;SOUR HEB -------------------------------- -------------------------------------------------------------------------------- ADAMS AADMS这一步操作内容大家应该都能看明白了那接下来的话咱们处理全表的数据 3、处理全表数据 下面进一步处理全表数据可以把前面的语句改为标量子查询 SQL select ename,2 (select listagg(substr(ename, level, 1)) within group(order by substr(ename, level, 1))3 from dual4 connect by level length(ename)) as sort_ename5 from emp;ENAME SORT_ENAME ---------- -------------------------------------------------------------------------------- SMITH HIMST ALLEN AELLN WARD ADRW JONES EJNOS MARTIN AIMNRT BLAKE ABEKL CLARK ACKLR SCOTT COSTT KING GIKN TURNER ENRRTU ADAMS AADMS JAMES AEJMS FORD DFOR MILLER EILLMR test estt15 rows selected或许有人会注意到在上面的数据中有很多字母是重复的如我们举例用的字符串ADAMS-AADMS,排序后就有两个A。对这种数据如果要去重怎么办 三、去重后按字母顺序排列字符串 我们在标量子查询里加一个group by即可注意把substr(ename,LEVEL,1)当作一个整体比较容易理解。 SQL select ename,2 (select listagg(min(substr(ename, level, 1))) within group(order by min(substr(ename, level, 1)))3 from dual4 connect by level length(ename)5 group by substr(ename, level, 1)) as sort_ename6 from emp;ENAME SORT_ENAME ---------- -------------------------------------------------------------------------------- SMITH HIMST ALLEN AELN WARD ADRW JONES EJNOS MARTIN AIMNRT BLAKE ABEKL CLARK ACKLR SCOTT COST KING GIKN TURNER ENRTU ADAMS ADMS JAMES AEJMS FORD DFOR MILLER EILMR test est15 rows selected如此我们就实现了去重后再排序的需求 四、如何删除字符串中的字符保留数字 用人话说就是想找出来带数值的数据并清理掉非数字字符 有这么一个临时表 SQL select to_char(empno) from emp where deptno102 union all3 select dname||deptno from dept4 union all5 select ename from emp where deptno20;TO_CHAR(EMPNO) ------------------------------------------------------ 7782 7839 7934 ACCOUNTING10 RESEARCH20 SALES30 OPERATIONS40 SMITH JONES SCOTT ADAMS FORD12 rows selected我现在有个需求想找一下哪些数据是包含数字的。 那这个需求怎么实现起来简单呢 这么做 先正则替换掉所有非数字字符然后外层嵌套一层找非空行就可以了 SQL with t as2 (select to_char(empno) as aa3 from emp4 where deptno 105 union all6 select dname || deptno7 from dept8 union all9 select ename10 from emp11 where deptno 20)12 select *13 from (select aa, regexp_replace(aa, [^[:digit:]]) as nub from t)14 where nub is not null;AA NUB ------------------------------------------------------ -------------------------------------------------------------------------------- 7782 7782 7839 7839 7934 7934 ACCOUNTING10 10 RESEARCH20 20 SALES30 30 OPERATIONS40 407 rows selected当然了你也可以用translate来实现 SQL with t as2 (select to_char(empno) as aa3 from emp4 where deptno 105 union all6 select dname || deptno7 from dept8 union all9 select ename10 from emp11 where deptno 20)12 select *13 from (14 select translate(aa,0123456789||aa,0123456789) nub15 from t16 )17 where nub is not null;NUB -------------------------------------------------------------------------------- 7782 7839 7934 10 20 30 407 rows selected 我这里写的都是简单写法麻烦的也有我就不写了浪费时间不说我还怕有人被我带偏了嘿嘿 总结 这篇文章还是介绍的字符串处理案例还是那句话这些操作太太太常见了。后面还会写而且是更麻烦更难的需求。
http://www.w-s-a.com/news/497103/

相关文章:

  • 原创网站模版苏州响应式网站建设
  • 做海报在哪个网站可以找素材网址申请注册方法
  • 网站建设分哪些类别别人做的网站不能用
  • 做网站网站会怎么样全国高校校园网站联盟建设
  • 整站下载器 做网站地图地产项目网站设计
  • 创意设计网站公司手机wap网站建设多少钱
  • 甘肃省第八建设集团公司网站seo高级优化方法
  • 精美的商城网站介绍最多人用的wordpress子主题
  • 检察门户网站建设情况俄外长抵达北京
  • 老电脑做网站服务器网站在线留言如何做
  • 南宁广告公司网站建设小程序源码破解
  • 沛县做网站xlec网站建设开发方式包括哪些方面
  • 山西网站建设 哪家好四川城乡和建设厅网站
  • 有瀑布流的网站小型商城网站
  • 百石网怎么做网站二次开发软件
  • 网站域名是什么东西制作网页哪家好
  • 合肥网站建设团队简述网站内容管理流程
  • 网站广告是内容营销吗wordpress增加背景图片
  • 网站建设技术jsp课程设计响应式布局网站开发
  • 东莞网站排名优化seo套路网站怎么做的
  • 我做网站网络建站一般多少钱
  • 如何快速提升网站关键词排名房地产网站开发毕业设计
  • 做网站 提交源码 论坛sem分析是什么意思
  • 网站建设与部署阿里云大学百度付费推广有几种方式
  • 作品集怎么做网站个人简历模板免费下
  • 工业网站素材重庆关键词自动排名
  • 拖拽式网站建设费用微网站怎么做的好名字
  • 长沙电信网站备案谷歌推广怎么做最有效
  • 网站建设与管理总结报告华为开发者联盟
  • 门诊部网站建设天空建筑网站