为什么在sql sever中使用first和last函数查询,提示‘first’'last' 不是可以识别的 内置函数名称。 5
5个回答
2013-02-05
展开全部
使用
MIN 与 MAX 函数, 来替换掉 first 和 last
如果是要获取 表里面 第一行数据的 year
select top 1 year as firstyear from persons;
最后一行, 有点复杂...
create table firstl(
orderdate date,
orderprice int);
insert into firstl values('2008/12/29','1000');
insert into firstl values('2008/11/23','1600');
insert into firstl values('2008/10/05','700');
insert into firstl values('2008/09/28','300');
GO
1>
2> SELECT top 1 orderdate FROM firstl
3> GO
orderdate
----------------
2008-12-29
(1 行受影响)
1>
2> SELECT
3> top 1 orderdate
4> FROM
5> (
6> SELECT
7> ROW_NUMBER() OVER( ORDER BY (SELECT 1)) NO,
8> orderdate
9> FROM
10> firstl
11> ) subQuery
12> ORDER BY
13> NO DESC
14> GO
orderdate
----------------
2008-09-28
(1 行受影响)
SQL Server 2008 Express 版本下测试通过。
MIN 与 MAX 函数, 来替换掉 first 和 last
如果是要获取 表里面 第一行数据的 year
select top 1 year as firstyear from persons;
最后一行, 有点复杂...
create table firstl(
orderdate date,
orderprice int);
insert into firstl values('2008/12/29','1000');
insert into firstl values('2008/11/23','1600');
insert into firstl values('2008/10/05','700');
insert into firstl values('2008/09/28','300');
GO
1>
2> SELECT top 1 orderdate FROM firstl
3> GO
orderdate
----------------
2008-12-29
(1 行受影响)
1>
2> SELECT
3> top 1 orderdate
4> FROM
5> (
6> SELECT
7> ROW_NUMBER() OVER( ORDER BY (SELECT 1)) NO,
8> orderdate
9> FROM
10> firstl
11> ) subQuery
12> ORDER BY
13> NO DESC
14> GO
orderdate
----------------
2008-09-28
(1 行受影响)
SQL Server 2008 Express 版本下测试通过。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用的位置不对,sql解析不正确报的错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是oracle还是sql server啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select cast(year as int)-1 as firstyear from persons
前提是YEAR这个字段只是保存年比如:“2013”
那么“2013-1”就是上2012了
前提是YEAR这个字段只是保存年比如:“2013”
那么“2013-1”就是上2012了
追问
create table firstl
(orderdate date,
orderprice int);
insert into firstl values('2008/12/29','1000');
insert into firstl values('2008/11/23','1600');
insert into firstl values('2008/10/05','700');
insert into firstl values('2008/09/28','300');
select first(orderprice) as firstprice from firstl;
重新写了个直接是int型的,可是依然报错
追答
select cast(convert(varchar(4),orderprice,121) as int)-1 as firstprice from firstl;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询