我有一张包含许多记录的表格,而且我只想知道我最后创建的记录。
例如:我有一张表customer
,其中customerID
是随机数。
现在我想选择倒数第二行。
customerID customer_name cont_no
---------------------------------------
7 david sam 5284
1 shinthol 1
11 lava 12548
2 thomas 1
3 peeter 1
4 magge 1
5 revas 1
6 leela 123975
输出行:
customerID customer_name cont_no
5 revas 1
我不想要第二高......
我想要倒数第二行。
答案 0 :(得分:2)
正如你所说,我可以举个例子。
想象一下,你有一整袋苹果。你怎么能拿第二个苹果?你怎么知道哪一个是倒数第二?当你不以任何方式对它们进行排序时,你不能这样做。
目前您的数据尚未排序,因此无法按预期实现。只有在您有date created
,SELECT TOP 1 *
FROM(
SELECT TOP 2 *
FROM Tbl
ORDER BY SortingCol DESC -- here you need to pass column which will provide expected sorting
) t
ORDER BY SortingCol
等任何排序条件后,您才能在以下内容中执行此操作。
$('.test').change(function() {
$(".test1").prop("disabled", this.value == -1);
});
答案 1 :(得分:1)
发布答案,因为这是一个很大的评论
大卫:好的,我下次会这样做,但我现在可以做的就是这个问题,有很多千禧年。有什么方法可以做到这一点? @Deepanshu Kalara
我:@david山姆,我不认为现在有办法做到这一点。 最好的选择是复制excel中的那千条记录,并希望它们是为了你插入它们。在那里创建一个手动列,就像你有自动增量一样。正如你所说的那样,通过在表格中插入该列来纠正你的表结构。
答案 2 :(得分:1)
正如您可能已经知道的那样,您需要一个列来命令才能完成此任务。 OVER条款可用于此。
;WITH CTE as
(
SELECT
customerid, customer_name, cont_no,
row_number() over (order by newlymadesortcolumn desc) rn
FROM customer
)
SELECT customerid, customer_name, cont_no
FROM CTE
WHERE rn = 2
答案 3 :(得分:0)
试试这个
;WITH tbl_rn AS (
select
RowNum = row_number() OVER (ORDER BY @@rowcount),
customerID,
customer_name,
cont_no
from tbl
)
select
customerID,
customer_name,
cont_no
from tbl_rn
where RowNum = (select max(RowNum) - 1 from tbl_rn)
此处RowNum
是一个列,它通过对表中的行进行编号而不对其进行排序。
max(RowNum) - 1
将提供最后一个
答案 4 :(得分:0)
数据应该在有效搜索之前进行排序。
我建议您使用autoincrement
在表格ID中添加额外字段。
查询:
SELECT TOP (1) customerID, customer_name, cont_no, id
FROM (SELECT TOP (2) customerID, customer_name, cont_no, id
FROM customer
ORDER BY id DESC) AS t
ORDER BY id
第一个前2个数据以降序(DESC)方式选择 结果基于id值为:
8,7(示例中显示了8个值)
接下来选择ASC中的前1值(升序方式)
输出:
答案 5 :(得分:0)
使用SQL Server 2012或更高版本,您可以在一个行代码中执行此操作:
struct Server {
let url: String
let username: String
let password: String
}
struct Environment {
let profile: Server
let payment: Server
let images: Server
static let development = Environment(
profile: Server(url: "http://google.com", username: "abc", password: "xyz"),
payment: Server(url: "http://bing.com", username: "abc", password: "xyz"),
images: Server(url: "http://duckduckgo.com", username: "abc", password: "xyz")
)
static let production = Environment(...)
static var current: Environment {
#if DEBUG
return development
#else
return production
#endif
}
}
答案 6 :(得分:0)
我知道这已经太晚了,你可以尝试一下。
SELECT TOP 1 * FROM (SELECT * FROM dbo.customer
EXCEPT SELECT TOP (SELECT (COUNT(*)-2) FROM dbo.customer ) * FROM dbo.customer) A
答案 7 :(得分:-1)
选择身份(int,1,1)作为Id,*从客户中选择#temp select * from #temp其中Id =(选择max(Id)作为来自#temp group by Id的计数) - 1 删除表#temp