• SQL截取字段字符串的方法


    set @str=‘WX15-53-H-53-99-15-335-23’;


    select @str as '字符串'


    select len(@str) as '字符长度'


    select charindex('-',@str,1) as '第一个逗号的索引值'


    select LEFT(@str,charindex('-',@str,1)-1) as '第一个值'


    select SUBSTRING(@str,charindex('-',@str,1)+1,len(@str)) as '从第一逗号开始截取出后面的字符串'


    select LEFT(SUBSTRING(@str,charindex('-',@str,1)+1,len(@str)),CHARINDEX('-',SUBSTRING(@str,charindex('-',@str,1)+1,len(@str)),1)-1) as '中间的值'


    select SUBSTRING(SUBSTRING(@str,charindex('-',@str,1)+1,len(@str)),charindex('-',SUBSTRING(@str,charindex('-',@str,1)+1,len(@str)),1)+1,len(@str)) as '第2个-后面的值’

    select SUBSTRING(SUBSTRING(@str,charindex('-',@str,2)+1,len(@str)),charindex('-',SUBSTRING(@str,charindex('-',@str,2)+1,len(@str)),2)+1,len(@str)) as '第2个-后面的值’

    select SUBSTRING(SUBSTRING(@str,charindex('-',@str,6)+1,len(@str)),charindex('-',SUBSTRING(@str,charindex('-',@str,6)+1,len(@str)),6)+1,len(@str)) as '第5个-后面的值’

    以此类推 取出的值为:15-335-23

    select SUBSTRING('23*2*3',charindex('*','23*2*3')-2,2)

    select charindex('*','223*332*3',1)

    select LEFT('223*2*3',charindex('*','223*2*3',1)-1)
    select LEFT('223*332*3',charindex('*','223*332*3',1)+1,charindex('*','223*332*3',1)-1)

    declare @str varchar(50)
    set @str='223*3325*3444'

    select LEFT(SUBSTRING(@str,charindex('*',@str,1)+1,len(@str)),CHARINDEX('*',SUBSTRING(@str,charindex('*',@str,1)+1,len(@str)),1)-1) as '中间的值'
    select SUBSTRING(SUBSTRING(@str,charindex('*',@str,1)+1,len(@str)),charindex('*',SUBSTRING(@str,charindex('*',@str,1)+1,len(@str)),1)+1,len(@str)) as '第2个-后面的值'

    multiply
    select b.goods,b.one_cat,b.number,b.Goods_unit_price,b.Goods_sum_price,b.dd_size,
    convert(decimal(10,2),convert(decimal(10,2),LEFT(b.dd_size,charindex('*',b.dd_size,1)-1))*convert(decimal(10,2),LEFT(SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),CHARINDEX('*',SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),1)-1))*convert(decimal(10,2),SUBSTRING(SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),charindex('*',SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),1)+1,len(b.dd_size)))),
    convert(decimal(10,2),LEFT(b.dd_size,charindex('*',b.dd_size,1)-1))
    ,convert(decimal(10,2),LEFT(SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),CHARINDEX('*',SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),1)-1))
    ,convert(decimal(10,2),SUBSTRING(SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),charindex('*',SUBSTRING(b.dd_size,charindex('*',b.dd_size,1)+1,len(b.dd_size)),1)+1,len(b.dd_size)))
    from pmw_packInfo p left join pmw_billcode b on p.goodsID=b.goodsID

  • 相关阅读:
    Vmware克隆虚拟机后网卡eth0变eth1解决
    iptables详解
    Python小白的发展之路之Python基础(二)【字符串、列表、集合、文件操作】
    ubuntu下的apt-get内网本地源的搭建
    Python小白的发展之路之Python基础(一)
    qtp录制---点击Activescreen时提示“一个或多个ActiveX控件无法显示”
    qtp录制ie,提示“是否只查看安全传送的网页内容”
    qtp录制ie崩溃
    bug的记录方式
    测试计划和测试方案的区别
  • 原文地址:https://www.cnblogs.com/LuoEast/p/7171180.html
Copyright © 2020-2023  润新知