SQL查询使用指南之截取需要的字段

作者: 北极熊在冬眠 | 来源:发表于2020-03-10 23:16 被阅读0次

原始数据

a = {"cheng2_shi4":"上海"}

要求

获取该字段的城市名称

语句

select substr((case when a like '%cheng%shi%' then a else null end)
,instr((case when a like '%cheng%shi%' then a else null end),'":"')+length('":"')
,instr((case when a like '%cheng%shi%' then a else null end),'"}')-instr((case when a like '%cheng%shi%' then a else null end),'":"')-length('":"')) as '城市'
from a

最外层:

截取字符:substr("需要进行截取的字段","从第几个字符开始","截取几个字符")

"需要进行截取的字段":

A是一个筐,里面什么都有,需要先找到其中含有城市信息的a

case when a like '%cheng%shi%' 
 then a 
 else null 
end

"从第几个字符开始":

重点是要找到目标字符串前后独一无二的识别标志,这个情况用了A中的 ":"作为识别标志

  • 从第几个字符开始 = 标志符所在的位置+标志符自身的长度(如下)
instr(
 (case when a like '%cheng%shi%' 
   then a 
   else null 
 end),'":"')
+length('":"')
  • 找到字符串位置:instr("进行施工的字符串(大)","在其中寻找的字符串(小)")

"截取几个字符":

  • 截取几个字符 = 目标字符串结束的位置(根据结尾标志符来定位) - 目标字符串开始的位置(根据开始标志符来定位)
instr((case when a like '%cheng%shi%' then a else null end),'"}')
-(instr((case when a like '%cheng%shi%' then a else null end),'":"')
  +length('":"'))
  • 其实完整版应该是这样:截取几个字符 = 目标字符串结束的位置(根据结尾标志符来定位)-1 - 目标字符串开始的位置(根据开始标志符来定位)+1*

相关文章

  • SQL查询使用指南之截取需要的字段

    原始数据 a = {"cheng2_shi4":"上海"} 要求 获取该字段的城市名称 语句 最外层: 截取字符:...

  • 四、Oracle之查询语句

    1、基本查询语句 2、在SQL*PLUS中设置格式 3、查询表中所有字段及指定字段 查询所有字段 查询指定字段 4...

  • sql如何进行优化

    sql如何进行优化 sql优化的一些方法: 尽可能的少用*,用所需要的字段来代替 *。 在一些需要查询的字段建立索...

  • explain详解

    explain详解 查询sql查询的执行计划,查看sql查询的索引策略 explain使用 explain字段 i...

  • 高质量SQL书写建议

    1.查询SQL尽量不要使用select *,而是select具体字段。 理由:只取需要的字段,节省资源、减少网络开...

  • SQL 截取字段

    MSSQL 1. SUBSTRING 返回字符、binary、text 或 image 表达式的一部分。有关可与该...

  • SQL学习笔记——DQL-1( 基础查询,函数 )

    DQL (所有SQL语句以;结尾,SQL语句不区分大小写) 简单查询 查询一个字段select 字段名 from...

  • Django字段查询参数及聚合函数

    字段查询参数及聚合函数 字段查询是指如何指定SQL WHERE子句的内容。它们用作QuerySet的filter(...

  • mybatis动态order by 排序问题 2021-09-

    1、问题 sql查询需要根据条件动态修改排序字段以及升降序;刚开始尝试在sql中直接使用choose when进行...

  • Laravel 简单查询

    记录使用laravel查询sql的记录 查询某字段中包含以逗号分隔的字符串的数据 原生sql laravel

网友评论

    本文标题:SQL查询使用指南之截取需要的字段

    本文链接:https://www.haomeiwen.com/subject/nagndhtx.html