MSSQLSERVER- CharIndex的妙用,找出有妙用


CharIndex

1:CharIndex語法: CharIndex(expression1,expression2[,start_location])

2:參數 expression1 一個表達式,其中包含要查找的字符的序列。expression1是一個字符串數據類別的表達式。 expression2 一個表達式,通常是一個為指定序列搜索的列。expression2屬於字符串數據類別. start_location 開始在expression2中搜索expression1時的字符位置。如果start_location未被指定、是一個負數或零,則將從espression2的開頭開始搜索。start_location可以是bigint類型。

3:返回類型如果expression2的數據類型為varchar(max),nvarchar(max)或varbinnary(max),則為bigint,否則為int。

4:備注如果在expression2內找不到expression1,則charindex返回0. charindex將根據輸入的排序規則執行比較操作。若要以指定排序規則進行比較,則可以使用collate將顯式排序規則應用於輸入值。返回的開始位置從1開始,而非從0開始。

5:例子

select charindex('A','BADF',1) :2

select charindex('A','BADF',0) :2

select charindex('A','BADF',2) :2

select charindex('A','BADF',3) :0

select charindex('G','BADF',3) :0

二、substring

1、語法

substring(expression,start,length);

2、參數

expression

是字符串、二級制字符串、文本、圖像、列或包含列的表達式。不要使用包含聚合函數的表達式。

start

指定字符串開始位置的整數。start可以為bigint類型。

length

一個整數,指定要返回的expression的字符數或字節數。如果length為負,則會返回錯誤。length可以是bigint類型。

3.備注

必須以字符數指定使用ntext、char或varchar數據類型的偏移量(start和length)。必須以字節數指定使用text、image、binary或varbinary等數據類型的偏移量。

4、例子:

select substring('GXS',-1,3) :G

select substring('GXS',-1,2) :NULL

select substring('GXS',0,1) :NULL

select substring('GXS',1,1) :G

select substring('GXS',1,2) :GX

SubString和CharIndex結合使用
select substring('A,B,C,D',0,charindex(',','A,B,C,D',0))

 

 

整數除整數后,如果最后是整數,說明數據正確,找出錯誤的數據(找出有小數點的數據)

SELECT PMX.DJBH,SP.SPDM,PD.BYZD7,PMX.SL,SP.CUST_SPBZGG,CONVERT(FLOAT,PMX.SL)/CONVERT(FLOAT,SP.CUST_SPBZGG)
,CHARINDEX('.',CONVERT(NVARCHAR(60),CONVERT(FLOAT,PMX.SL)/CONVERT(FLOAT,SP.CUST_SPBZGG)),0)
FROM pfjrdmx PMX    
LEFT JOIN PFJRD PD ON PMX.DJBH = PD.DJBH
LEFT JOIN dbo.SHANGPIN SP ON PMX.SPDM = SP.SPDM 
WHERE PD.BYZD7 = '004' AND SP.CUST_SPBZGG!=1
--AND CHARINDEX('.',CONVERT(NVARCHAR(60),CONVERT(FLOAT,PMX.SL)/CONVERT(FLOAT,SP.CUST_SPBZGG)),0)>0
AND CHARINDEX('.',CONVERT(NVARCHAR(60),CONVERT(FLOAT,PMX.SL)/CONVERT(FLOAT,SP.CUST_SPBZGG)),0)!='0'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM