『壹』 sql如何截取字元
sql截取字元串:
1、LOCATE(substr, str):返回子串 substr 在字元串 str 中第一次出現的位置,如果字元substr在字元串str中不存在,則返回0;
2、POSITION(substr IN str):返回子串 substr 在字元串 str 中第一次出現的位置,如果字元substr在字元串str中不存在,與LOCATE函數作用相同;
3、LEFT(str, length):從左邊開始截取str,length是截取的長度;
4、RIGHT(str,length):從右邊開始截取str,length是截取的長度;
5、SUBSTRING_INDEX(str ,substr ,n):返回字元substr在str中第n次出現位置之前的字元串;
6、SUBSTRING(str,n ,m):返回字元串str從第n個字元截取到第m個字元;
7、REPLACE(str, n, m):將字元串str中的n字元替換成m字元;
8、LENGTH(str):計算字元串str的長度。
『貳』 sql 截取數字後進行排序
--MSSQL,樓上那個肯定排不出你的效果
select*from表
orderbycaseSUBSTRING(欄位,2,1)
when'一'then1
when'二'then2
when'三'then3
when'四'then4
when'五'then5
when'六'then6
when'七'then7
when'八'then8
when'九'then9
when'十'then10
end
『叄』 SQL怎麼截取字元串的數字部分
正則表達式~
可惜自己也沒太懂~
『肆』 一個關於SQL 語句截取字元串中的數字問題
這個自己寫一個函數(假設 f_getdigit(s_in):
輸入: 字元串
輸出: 非數字中間的數字內容
函數體: 逐個 判斷字元串 各字元的 ascii碼 ,找到第一個數字開始的地方; 接著找到 後續 第一個非數字的地方(或者找完) ;
截取 中間的 內容,返回 即可。
然後 就可以在 sql語句中使用此函數:
select f_getdigit(col1) from tab1
『伍』 SQL 只截取數字的函數,
select substring(列名,開始位置,結束位置) from tb
『陸』 SQL怎麼取字元串中的數字
1、創建測試表,
create table test_str(id int, v_str varchar2(20));
『柒』 SQL怎樣取出字元串中的數字
比如你的表叫作TALBE1,欄位是str1,類型為nvarchar,那麼找出有湘政發的最大號加1這樣寫
select max(convert(int,substring(str1,patindex(N'%[1234567890]%',str1),len(str1)-patindex(N'%[1234567890]%',str1)+1-patindex(N'%[1234567890]%',reverse(str1))+1)))+1 from table1 where str1 like N'%湘政發%'
測試通過,耗時很長,請認真試試。
這是sql server 的寫法。
如果是ORACAL或其它的SQL語言您可以到這里參考一下。你會發現,用SQL SERVER我的方法要比他的好
http://book.csdn.net/bookfiles/530/10053017904.shtml