SQL Server中判斷字串出現的位置及字串截取

來源:互聯網
上載者:User

標籤:ar   sp   資料   問題   bs   資料庫   sql   nbsp   使用者   

首先建一張測試表:

create table teststring(name nvarchar(100));
insert into teststring
values
(‘張三,李四,王五,馬六,蕭十一,皇宮‘);

1.判斷字串中某字元(字串)出現的次數,第一次出現的位置最後一次出現的位置:

查看’,’出現的次數

select LEN(name)-LEN(REPLACE(name,‘,‘,‘‘)) from teststring;

查看’,’第一次出現的位置:

select CHARINDEX(‘,‘,name) from teststring;

查看’,’最後一次出現的位置:

select len(name)-(CHARINDEX(‘,‘,REVERSE(name))-1) from teststring;

2.取出以’,’分隔開的字元(串),這個例子中就是’張三’、’李四’等

這是有規律的,首先應該想到有沒有特定的系統函數實現,好像沒有,其次就應該想到迴圈了。

當我把’張三’取出後,怎樣把’張三,’去掉呢?

取’張三’不難,

select SUBSTRING(name,1,CHARINDEX(‘,‘,name)-1) from teststring;

如何把’張三,’去掉呢?開始我也不知道,baidu、google啊,關鍵字sql、split吧,總之我也是搜的

select STUFF(name,1,CHARINDEX(‘,‘,name),‘‘) from teststring;

好像用replace也能實現

select REPLACE(name,substring(name,1,CHARINDEX(‘,‘,name)),‘‘) from teststring;

那現在就差迴圈了,我很少寫預存程序或函數的,文法都不記得,用的時候現查(經常用就記得了),我都寫匿名的預存程序,哈哈

create table teststring2(name nvarchar(100));

declare @name nvarchar(100);
select @name= name from teststring;
while(CHARINDEX(‘,‘,@name)<>0)
begin
insert into teststring2 select SUBSTRING(@name,1,CHARINDEX(‘,‘,@name)-1);
set @name=STUFF(@name,1,CHARINDEX(‘,‘,@name),‘‘);
set @[email protected]+1;
end
insert into teststring2
select @name

 

select * from teststring2就可以看到了。

這隻是表中只有一個欄位的,如果多的話,用表變數應該就可以了。

表變數我也不會,之前用過一次,用過就忘記了,偶爾用一次!知道有這個東西就好了,至少遇到問題思考時能想到這東西。

 

以上都是基於我最近做公司考勤時候用的,大概就是php的網頁,姓名文字框裡需要輸入使用者姓名,但是一次輸入一個,得添加多次,如果我把後台資料庫姓名這欄位設定大些,一次就可以輸入多個姓名,但姓名與姓名之間用逗號隔開,我就可以在資料庫裡處理了。

有空會寫寫關於我自己做的考勤錄入網頁。

SQL Server中判斷字串出現的位置及字串截取

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.