SQL数据库之--获得字段某个指定符号后面字符串
------用法示例
select Charindex(' ','233300 2333'), ---获取字段空格符位数
len('233300 2333'), ---获取字段总字符数
right('233300 2333',len('233300 2333')-Charindex(' ','233300 2333')), ---字段右边取值
ltrim(right('233300 2333',len('233300 2333')-Charindex(' ','233300 2333'))), ---去除字段右边取值后空格符
REPLACE(
right('233300 2333',len('233300 2333')-Charindex(' ','233300 2333')), ---去除字段所有空格符
' ','')
------去掉字符串中的所有空格符
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

--------程序实战之应用
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f虚拟批次]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f虚拟批次]
GO
CREATE FUNCTION f虚拟批次 (@虚拟批次 varchar(20))
RETURNS
@XNPC TABLE (编号 int,部门 varchar(30),组别 varchar(30),货号 char(14),批号 varchar(24),批次 varchar(20),库存单价 money,效期 int,生产日期 char(8),供货商号 varchar(10),GSP控制 char(2),状态 char(4))
AS
BEGIN
--modify by tm 货号可变位数的问题
-- declare @虚拟批次 char(20) select @虚拟批次 = '100043 5'
declare @货号 char(14),@编号 int
select @货号 = substring(@虚拟批次,1,Charindex(' ',@虚拟批次)),
@编号 =right(@虚拟批次,len(@虚拟批次)-Charindex(' ',@虚拟批次))
/*
select @货号 = substring(@虚拟批次,1,7),
@编号 = case when left(@虚拟批次,1)IN (6,7,8) then convert(int,substring(@虚拟批次,7,8)) else
convert(int,substring(@虚拟批次,8,8)) end
*/
--select @货号,@编号 select convert(int,substring('70016 16260',7,8))
if @编号>0
insert into @XNPC
select 编号,部门,组别,货号,批号,批次,库存单价,效期,生产日期,供货商号,GSP控制,'填写'
from v实际批次 where 编号 = @编号
else
insert into @XNPC
select null,a.部门名称,case when 商品属性='赠品' and 部门类型=1 then '赠品组' when 商品属性='赠品' and 部门类型=2 then '赠品库' else 业务组 end,@货号,null,null,最新进价,null,null,最新供货,null,'计划'
from 系统参数表 a,部门清单 b,商品信息 c,商品清单 d
where 部门号=部门编号 and c.货号=d.货号 and c.货号 = @货号
/*
-- declare @虚拟批次 char(20) select @虚拟批次 = '100043 5'
declare @货号 char(14),@编号 int select @货号 = substring(@虚拟批次,1,7),@编号 = convert(int,substring(@虚拟批次,8,8)) --select @货号,@编号
if @编号>0
insert into @XNPC
select 编号,部门,组别,货号,批号,批次,库存单价,效期,生产日期,供货商号,GSP控制,'填写'
from v实际批次 where 编号 = @编号
else
insert into @XNPC
select null,a.部门名称,case when 商品属性='赠品' and 部门类型=1 then '赠品组' when 商品属性='赠品' and 部门类型=2 then '赠品库' else 业务组 end,@货号,null,null,最新进价,null,null,最新供货,null,'计划' from 系统参数表 a,部门清单 b,商品信息 c,商品清单 d where 部门号=部门编号 and c.货号=d.货号 and c.货号 = @货号
*/
RETURN
END