‘壹’ 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