在ms sql数据库表files_master中我有一个名为'AstNum'
1/1980
2/1980
11/1980
的列,它包含如下数据:SELECT AstNum FROM Files_master ORDER BY AstNum ASC
等等,当我对列进行排序时:
1/1980,11/1980
它向我显示了列中的记录/1980
。
1/1980
2/1980
3/1980
是斜线是增量数的前一年请帮我如何在结果using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace OOP2
{
public partial class FleteDalja : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void enter_Click(object sender, EventArgs e)
{
Response.Redirect("Home.aspx");
}
}
}
<asp:Button ID="enter" runat="server" onclick="enter_Click"
Text="Enter" />
答案 0 :(得分:3)
试试这个
function m(e) {
if (o) {
n = Math.round(e.children(".search-item").length / r)
} else {
var mod_1 = Math.round(e.children("tr").length % r)
n = Math.round(e.children("tr").length / r);
if (mod_1 != 0)
{
n += 1;
}
} if (n == 0) {
n = 1
}
编辑:根据评论,这是另一种解决方案
Select AstNum from Files_master Order by convert(datetime,'1/'+AstNum,101) ASC
答案 1 :(得分:2)
这很容易就行不通,也可能违反了standard database rules。
你的方法是拥有两个类型int
的列,其中一列是索引,另一列是年份。比如说,您有id
和year
列,您的请求将是
SELECT `id`, `year` FROM Files_master ORDER BY `id` ASC, `year` ASC
请注意,列出ORDER BY
语句中列的顺序取决于主要和次要订单列,因此您可能首先要按年订购。
如果你真的,真的,必须使用这种格式,只有这样,你才可能找到一种方法来使用SUBSTRING_INDEX
分割你的字符串,然后有类似的东西(未测试的):
SELECT SUBSTRING_INDEX(`AstNum`, '/', 1) AS `id`,
SUBSTRING_INDEX(`AstNum`, '/', -1) AS `year`
ORDER BY `id` ASC,`year` ASC
请注意,评估可能会非常缓慢。
编辑:回复评论,因为事实证明使用的是SQL Server而不是MySQL(我在撰写本文时假设的),命令必须略有不同,更复杂(仍未测试,偏移可能是.. off):
SELECT SUBSTRING(AstNum, 1, LEN(AstNum)-5) AS id,
SUBSTRING(AstNum, LEN(AstNum)-3, 4) AS year
ORDER BY id ASC, year ASC
答案 2 :(得分:0)
如果您需要先按年份排序 -
SELECT AstNum
FROM Files_master
ORDER BY Cast(substring(AstNum, 1, charindex('/', AstNum)-1) as int) ASC
如果您只需要按数字增量排序,那么 -
LEFT JOIN