アイコン
ステートメント:
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, '(', '(')