你的运气挺好,我发现所有数据的格式都是统一的,而且patid是第一个p的出现点,后面的分号都是第七个分号,syxh是第一个s的出现点,后面的分号是第九个,这样就很容易判断了。
举例,截取patid后面的数字
(1)定位 instr(R_DY_TEXT9,'p') 当然写成 instr(R_DY_TEXT9,'patid')也可以 ,二者是一样的
(2)定位第七个分号instr(R_DY_TEXT9,';',1,7)(判断第七个分号的位置,可能我数错了,这个你要自己好好看看)
(3)instr(R_DY_TEXT9,'patid')+6 这个是数组开头的位置,‘patid=’一共是六位,所以要加6
那么substr的截取长度就是instr(R_DY_TEXT9,';',1,7)-instr(R_DY_TEXT9,'patid')-6
合在一起就是(我写的没有试验过,可能需要一些微调(比如分号个数不对,截取开始位置不对,截取长度不对等等),具体的你可以找一条数据来测试一下,然后改变后面的参数就可以了)
substr(R_DY_TEXT9,instr(R_DY_TEXT9,'patid')+6 ,instr(R_DY_TEXT9,';',1,7)-instr(R_DY_TEXT9,'patid')-6)
翻译过来就是在R_DY_TEXT9字段中,从instr(R_DY_TEXT9,'patid')+6 位开始,截取长度为instr(R_DY_TEXT9,';',1,7)-instr(R_DY_TEXT9,'patid')-6的字符串
后面截取syxh也是一样的
substr(R_DY_TEXT9,instr(R_DY_TEXT9,'syxh')+5 ,instr(R_DY_TEXT9,';',1,9)-instr(R_DY_TEXT9,'syxh')-5)
二者截取出来了,就能判断了。
楼上的做法可以实现,不过呢,效率不高
不知道你现在绑定的是数据库里面的列还是 实体类的属性
如果是列的话,那就在数据库读取的时候加上一列,读取截取后的数据,然后绑定
如果是属性的话,那加一个属性,只是GET ,取的是截取的数据,然后绑定
这样效率会高一些,能明白吗?
--方法一replace函数去掉引号就是没有引号字符串:
select replace(zh,'''','') from 表--如果真要截取的话也是可以的 先left去掉最后一个引号,然后stuff去掉第一个引号即可
select stuff(left(zh,len(zh)-1),1,1,'') from 表如有问题可以追问,我当及时回答。
希望能帮到你!
1、将新建好的表aaaa,填充需要查询的数据以"_"或者","为分隔符的两条数据。
2、先挑ID为1的数据进行截取查询演示。
3、如果已知截取字符的长度和特殊字符位置,就可以用substring()函数来从字符串的开始位置,截取到特殊字符出现的位置。
4、使用charindex()函数来返回特殊字符出现的位置,查询结果及语句。
5、使用LEFT()函数和charindex()函数来从字符最左边开始到特殊字符出现的位置。
6、第一个参数表示被截取的字符串,第二个参数表示要在第一个参数中开始截取的位置,第三个参数表示要截取的长度。
这个当然没问题了。
读取时,读取方式可以按照1个字符,也可以按照预先定义好的结构体(可以是地震数据结构),
然后可以用for循环,定量的读取n个字符或结构体。
也可以使用函数如fseek定位函数,具体参见>
举几个例子给你看就明白了:
假设你的数字放在A1单元格
1,取左边6个数字,在B1输入=left(A1,6)即可
2,取右边5个数字,在B1输入=right(A1,5)即可
3,取中间3个数字,在B1输入=mid(A1,4,3)即可,其中公式中的"4"是指从第几位开始取
这样,如果你的数字全部在A列,则拖选复制B1到整个B列就实现批量修改了
以上就是关于在oracle数据库中截取一个表名下的几个字段全部的内容,包括:在oracle数据库中截取一个表名下的几个字段、asp.net怎么截取数据的一部分、请问SQL 2008如何截取字符串中间段内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)