SQL數(shù)據(jù)庫(kù)之--獲得字段某個(gè)指定符號(hào)后面字符串
------用法示例
select Charindex(' ','233300?? 2333'),?? ??? ??? ??? ??? ??? ??? ?---獲取字段空格符位數(shù)
len('233300?? 2333'),?? ??? ??? ??? ??? ??? ??? ??? ??? ?---獲取字段總字符數(shù)
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' )
用第三個(gè)表達(dá)式替換第一個(gè)字符串表達(dá)式中出現(xiàn)的所有第二個(gè)給定字符串表達(dá)式。

--------程序?qū)崙?zhàn)之應(yīng)用
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 (編號(hào) int,部門 varchar(30),組別 varchar(30),貨號(hào) char(14),批號(hào) varchar(24),批次 varchar(20),庫(kù)存單價(jià) money,效期 int,生產(chǎn)日期 char(8),供貨商號(hào) varchar(10),GSP控制 char(2),狀態(tài) char(4))
AS
BEGIN?? ?
--modify by tm 貨號(hào)可變位數(shù)的問(wèn)題
--?? ?declare @虛擬批次 char(20) select @虛擬批次 = '100043 5'
?? ?declare @貨號(hào) char(14),@編號(hào) int
?? ?select @貨號(hào) = substring(@虛擬批次,1,Charindex(' ',@虛擬批次)),
?? ?@編號(hào) =right(@虛擬批次,len(@虛擬批次)-Charindex(' ',@虛擬批次))
/*
?? ?select @貨號(hào) = substring(@虛擬批次,1,7),
?? ?@編號(hào) = case when left(@虛擬批次,1)IN (6,7,8) then convert(int,substring(@虛擬批次,7,8))?? else
?? ?convert(int,substring(@虛擬批次,8,8)) end
*/
?--select @貨號(hào),@編號(hào) select? convert(int,substring('70016 16260',7,8))
?? ?if @編號(hào)>0
?? ?insert into @XNPC
?? ?select 編號(hào),部門,組別,貨號(hào),批號(hào),批次,庫(kù)存單價(jià),效期,生產(chǎn)日期,供貨商號(hào),GSP控制,'填寫'
?? ??? ?from v實(shí)際批次 where 編號(hào) = @編號(hào)
?? ?else
?? ?insert into @XNPC
?? ?select null,a.部門名稱,case when 商品屬性='贈(zèng)品' and 部門類型=1 then '贈(zèng)品組' when 商品屬性='贈(zèng)品' and 部門類型=2 then '贈(zèng)品庫(kù)' else 業(yè)務(wù)組 end,@貨號(hào),null,null,最新進(jìn)價(jià),null,null,最新供貨,null,'計(jì)劃'
?? ?from 系統(tǒng)參數(shù)表 a,部門清單 b,商品信息 c,商品清單 d
?? ?where 部門號(hào)=部門編號(hào) and c.貨號(hào)=d.貨號(hào) and c.貨號(hào) = @貨號(hào)
/*
--?? ?declare @虛擬批次 char(20) select @虛擬批次 = '100043 5'
?? ?declare @貨號(hào) char(14),@編號(hào) int select @貨號(hào) = substring(@虛擬批次,1,7),@編號(hào) = convert(int,substring(@虛擬批次,8,8)) --select @貨號(hào),@編號(hào)
?? ?if @編號(hào)>0
?? ?insert into @XNPC
?? ?select 編號(hào),部門,組別,貨號(hào),批號(hào),批次,庫(kù)存單價(jià),效期,生產(chǎn)日期,供貨商號(hào),GSP控制,'填寫'
?? ??? ?from v實(shí)際批次 where 編號(hào) = @編號(hào)
?? ?else
?? ?insert into @XNPC
?? ?select null,a.部門名稱,case when 商品屬性='贈(zèng)品' and 部門類型=1 then '贈(zèng)品組' when 商品屬性='贈(zèng)品' and 部門類型=2 then '贈(zèng)品庫(kù)' else 業(yè)務(wù)組 end,@貨號(hào),null,null,最新進(jìn)價(jià),null,null,最新供貨,null,'計(jì)劃' from 系統(tǒng)參數(shù)表 a,部門清單 b,商品信息 c,商品清單 d where 部門號(hào)=部門編號(hào) and c.貨號(hào)=d.貨號(hào) and c.貨號(hào) = @貨號(hào)
*/
?? ?RETURN
END