sqlserver字元函數
⑴ sqlserver 按分隔符截取字元串
可以參考下面的代碼:
selectsubstring('ADFASDFD(DASFADSFAS)',1,charindex('(','ADFASDFD(DASFADSFAS)')-1)
主要用到兩個函數,一個charindex,這個是判斷指定字元位置的函數。
另一個是substring,這個是截取字元串的函數。
(1)sqlserver字元函數擴展閱讀:
sqlserver參考函數
upper(char_expr) 轉為大寫
lower(char_expr) 轉為小寫
space(int_expr) 生成int_expr個空格
reverse(char_expr) 反轉字元串
stuff(char_expr1,start,length,char_expr2) 將字元串char_expr1中的從
⑵ sqlserver如何在字元串中間增加字元
直接用估計沒有,可以定義一個函數轉一下,MSSQL中有個stuff函數
在指定位置替換或增加字元,比如:
SELECT STUFF('12345678', 2, 3, 'abc')
SELECT STUFF('12345678', 2, 0, ':')
但只能插入一個位置。
建議自定義一個字元串處理函數,然後在語句中調用吧
比如
create function dbo.fn_setColon (
@oldstr varchar(4000) )
returns varchar(4000)
as
begin
declare @outstr varchar(4000)
set @outstr=''
while (len(@oldstr)>2)
begin
set @outstr=@outstr+left(@oldstr,2)+':'
set @oldstr=right(@oldstr, len(@oldstr)-2)
end
if @oldstr<>''
begin
set @outstr=@outstr+@oldstr
end
return @outstr
end
select dbo.fn_getColon('123456789')
第二種情況可以先把字元串中的字母替換掉,然後再調用該函數,建議還是通過前端程序來處理字元串。
⑶ 在SQL Server資料庫中拆分字元串函數
SQL Server資料庫中拆分字元串函數的具體方法
CREATE FUNCTION uf_StrSplit (@origStr varchar( ) 待拆分的字元串@markStr varchar( )) 拆分標記 如 RETURNS @splittable table( str_id varchar( ) NOT NULL 編號ID string varchar( ) NOT NULL 拆分後的字元串)ASBEGINdeclare @strlen int @postion int @start int @sublen int @TEMPstr varchar( ) @TEMPid intSELECT @strlen=LEN(@origStr) @start= @sublen= @postion= @TEMPstr= @TEMPid= if(RIGHT(@origStr )<>@markStr )beginset @origStr = @origStr + @markStrendWHILE((@postion<=@strlen) and (@postion != ))BEGINIF(CHARINDEX(@markStr @origStr @postion)!= )BEGINSET @sublen=CHARINDEX(@markStr @origStr @postion) @postion;ENDELSEBEGINSET @sublen=@strlen @postion+ ;ENDIF(@postion<=@strlen)BEGINSET @TEMPid=@TEMPid+ ;SET @TEMPstr=SUBSTRING(@origStr @postion @sublen);INSERT INTO @splittable(str_id string)values(@TEMPid @TEMPstr)IF(CHARINDEX(@markStr @origStr @postion)!= )BEGINSET @postion=CHARINDEX(@markStr @origStr @postion)+ ENDELSEBEGINSET @postion=@postion+ ENDENDENDRETURNEND
例如 select * from uf_StrSplit( )
輸出結果
lishixin/Article/program/SQLServer/201311/22421
⑷ SqlServer函數的字元串函數
1 字元串函數
1.1 長度與分析用
datalength(Char_expr) 返回字元串包含字元數,但不包含後面的空格
substring(expression,start,length) 不多說了,取子串
right(char_expr,int_expr) 返回字元串右邊int_expr個字元
1.2 字元操作類
upper(char_expr) 轉為大寫
lower(char_expr) 轉為小寫
space(int_expr) 生成int_expr個空格
replicate(char_expr,int_expr)復制字元串int_expr次
reverse(char_expr) 反轉字元串
stuff(char_expr1,start,length,char_expr2) 將字元串char_expr1中的從
start開始的length個字元用char_expr2代替
ltrim(char_expr) rtrim(char_expr) 取掉空格
ascii(char) char(ascii) 兩函數對應,取ascii碼,根據ascii碼取字元
1.3 字元串查找
charindex(char_expr,expression) 返回char_expr的起始位置
patindex(%pattern%,expression) 返回指定模式的起始位置,否則為0
⑸ MySQL、SQLServer判斷字元串是否包含某字元
MySQL:
在MySQL中使用FIND_IN_SET( st , str )函數來判斷某個字元串是否包含某字元。其中,st表示需要判斷的字元,str表示相應的字元串欄位。如果包含,則返回st字元在字元串中的位置,以1為起點。如果不包含,則返回0;
SQLServer:
在SQLServer中使用CHARINDEX(','+ st +',' , ','+ str +',')函數來判斷某個字元串是否包含某字元。其中,st表示需要判斷的字元,str表示相應的字元串欄位。如果包含,則返回st字元在字元串中的位置,以1為起點。如果不包含,則返回0;
注意:在SQLServer函數中,st必須為字元串,使用int則無效,如果是數字類型字元,必須使用雙引號。
⑹ 如何在sql中定義一個函數,函數功能是傳入一個字元串,返回這個字元串中的數
1通過VisualStudio2008新建一個SQLServer項目。2,配置連接的資料庫點擊上一步確定後,可以通過添加新引用來添加一個資料庫連接(只適用MS SQL Server 2005或以上版本,再次提醒哦),添加以後選擇其中一個資料庫點擊確。3,添加一個自定義函數。然後編寫自定義函數的類即可。
用戶自定義函數是指如果要在公式或計算中使用特別復雜的計算,而工作表函數又無法滿足需要,則需要創建用戶自定義函數。