
declare @i int,@j int,@str varchar(20)
set @str='abc-def-h'
set @i=1
set @j=len(@str)
declare @num int
while @i<@j
begin
set @num=charindex('-',@str,@i)
set @i=@i+1
set @i=@num+1
select @num
end
可以使用sqlserver中的row_number函数。
如:test表内容如下
id
titile
time
1
你好
2015-01-01
2
正确
2015-02-01
3
明天
2015-03-01
4
数据
2015-04-01
5
开心
2015-05-01
比如要查时间倒数第二晚的,也就是id=4的这条数据,可用下边语句
select t from
(select ,row_number() over (order by time desc) rn from test) t
where rn=2;
在你本地的管理工具中,有查询分析器,用它连接远程数据库,然后编写建表语句执行即可!
如下:
CREATE
TABLE
[dbo][表名](
[ID]
[int]
IDENTITY(1,1)
NOT
NULL,[Type]
[smallint]
NOT
NULL
CONSTRAINT
[PK_表名]
PRIMARY
KEY
CLUSTERED
(
[ID]
ASC
)
ON
[PRIMARY]
)
ON
[PRIMARY]
DECLARE @Str VARCHAR(50)
SET @Str = ',123456,'
select LEN(@Str) - CHARINDEX(',', REVERSE(@Str)) + 1
----返回值---
8
做是可以做出来的,只要结果的话好说:
Oracle数据库下:
select from(select rownum rownumNO,笔试成绩,机试成绩,其他信息 from stuMarks) where rownumNO=(select count() from stuMarks)-2
这个的话就是查出来倒数第三的成绩了,注意最后一个是-2。如果你要优化的话,或者有其他需求的话给我留言,OK?
以上就是关于sql 查找字符串位置(从倒数算起)全部的内容,包括:sql 查找字符串位置(从倒数算起)、SQL语句如何查询倒数第二项数据、sql数据库中如何查询(sql怎么查询)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)