sqlservercharindex部分文字列len置換

アイコン

ステートメント:

	SELECT DISTINCT
		unitname,
		CHARINDEX( '(', unitname ) locate,
		SUBSTRING ( unitname, CHARINDEX( '(', unitname ) + 1, LEN( unitname ) - CHARINDEX( '(', unitname ) - 1 ) yaname,
		LEN( unitname ) length
	FROM
		CBHS_XMFT_UNITEQUIPCOMMON

結果:

ここに写真の説明を挿入

知識分析:

1、CHARINDEX(expression1、expression2 [、start_location])デフォルトの位置は1から始まります

expression1:式を検索する文字2
:指定されたシーケンスを検索する列

例:CHARINDEX( '('、unitname)は7を返します

:見つからない場合は0が返され、複数文字の検索も可能です。

select CHARINDEX( 'hello', 'world hell' )  --返回0
select CHARINDEX( 'hello', 'world hello' )  --返回7  

2、SUBSTRING(式、開始、長さ)

式:指定されたシーケンスを検索する列
開始:
文字がインターセプトされる位置長さ:インターセプトされる文字の長さ

 select SUBSTRING('abcde',1,2) --返回结果 ab

 select SUBSTRING('abcde',0,1) --返回结果为空

 select SUBSTRING('abcde',1,0) --返回结果为空

 select SUBSTRING('abcde',0,8) --返回结果为abcde,注意后面没有空格了。
 
 select SUBSTRING('abcde',-5,7) --返回结果为a

3、LEN(string_expression)

string_expression:計算される文字の長さ

 select LEN(' h ello '),LEN('汉字'),LEN(123456); --7 2 6

注意:

1.漢字、英語、数字はすべて1文字としてカウントされます
2.末尾のスペース文字数としてカウントされませんが、先頭または中央のスペースは文字数としてカウントされ
ます3.数タイプは引用符を必要としません

4、REPLACE(string_expression、string_pattern、string_replacement)

string_expression:処理される
文字
string_pattern:置き換えられる古い文字string_replacement:置き換えられる新しい文字

 select REPLACE(' hello',' ',123);  --返回结果123hello

一般的に、データベース内の不規則な文字を処理するために使用します

といった: 将中文的括号转换为英文的括号

update sys_info set unitname=REPLACE(unitname, '(', '(')

おすすめ

転載: blog.csdn.net/qq_36636312/article/details/108527507
おすすめ