当前位置: 代码迷 >> Sql Server >> SQL2000字符串截取解决思路
  详细解决方案

SQL2000字符串截取解决思路

热度:10   发布时间:2016-04-24 10:31:07.0
SQL2000字符串截取

  字段一
1.5kg*8包
150g*24包
48g*24包
1.5kg*8包
52g*24包
95g*24包

提取出  规格,装数,单包,如下格式:
   想要的结果
规格   装数  单位 
1.5kg   24   包

------解决方案--------------------
有点小复杂,说明一下,我的是英文版的系统,所以要用N'包'这种nvarchar写法,如果你的是中文版,可以不用N
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-06-20 13:59:04
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([字段一] nvarchar(16))
insert [huang]
select N'1.5kg*8包' union all
select N'150g*24包' union all
select N'48g*24包' union all
select N'1.5kg*8包' union all
select N'52g*24包' union all
select N'95g*24包'
--------------生成数据--------------------------

select SUBSTRING([字段一],1,PATINDEX('%*%',[字段一])-1) [规格],
SUBSTRING([字段一],PATINDEX('%*%',[字段一])+1,LEN([字段一])-LEN(SUBSTRING([字段一],1,PATINDEX('%*%',[字段一])-1))-2)装数,
SUBSTRING ([字段一],PATINDEX(N'%包%',[字段一]),1)单位
from [huang]
----------------结果----------------------------
/* 
规格               装数               单位
---------------- ---------------- ----
1.5kg            8                包
150g             24               包
48g              24               包
1.5kg            8                包
52g              24               包
95g              24               包
*/
  相关解决方案