是否可以为返回的结果定义排序顺序?
我希望排序顺序为"橙色","苹果","草莓",不是升序或降序.
我知道ORDER BY可以做ASC或DESC但是有一个DEFINED('orange','apple','strawberry')类型的东西?
这将在SQL Server 2000上运行.
我想使我的查询中的排序有条件,所以如果它满足条件它应该通过降序排序
例如:
SELECT * FROM Data ORDER BY SortOrder CASE WHEN @Direction = 1 THEN DESC END
Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试使用select方法对我的数据表中的行进行排序.我知道我可以说
datatable.select("col1='test'")
Run Code Online (Sandbox Code Playgroud)
实际上是一个where子句,它将返回满足条件的n行.
我想知道我能做到以下几点
datatable.select("ORDER BY col1") --- col1是hte列的名称
我试过datatable.defaultview.sort()但没有工作
关于如何解决这个问题的任何想法.谢谢
我正在尝试排序字符串列(包含数字).
// SELECT `name` FROM `mytable` ORDER BY `name` ASC
+----------+
+-- name --+
+----------+
+-- a 1 ---+
+-- a 12 --+
+-- a 2 ---+
+-- a 3 ---+
Run Code Online (Sandbox Code Playgroud)
你看的Mysql的自然排序算法放置a 12后a 1(这是确定的大多数应用程序),但我有独特的需求,所以我想结果应该是这样排序.
+----------+
+-- name --+
+----------+
+-- a 1 ---+
+-- a 2 ---+
+-- a 3 ---+
+-- a 12 --+
Run Code Online (Sandbox Code Playgroud)
是否可以只使用SQL,或者我必须在应用程序级别操作结果集?
有没有办法知道是否IQueryable<T>已订购(使用OrderBy或OrderbyDescending)?
所以我知道是打电话OrderBy还是ThenBy收集.
IQueryable<Contact> contacts = Database.GetContacts();
Run Code Online (Sandbox Code Playgroud)
我试过了contacts is IOrderedQueryable<Contact>,但它总是如此.
编辑:我刚刚改变了我的例子,前一个并没有真正表明我的观点.假设GetContacts使用Entity Framework并简单地返回表的所有记录.
后来,我应用了几个函数contacts,我不知道这些函数是做什么的.他们可以排序或过滤IQueryable<Contact>.
当我收回集合时,我需要再次对它进行排序.为此,我需要知道是否需要打电话OrderBy,或者ThenBy.因此,如果已经对整个集合进行了排序,我不会重新排序.
我编写一个SP作为参数列接受排序和方向.
我不想使用动态SQL.
问题是设置方向参数.
这是部分代码:
SET @OrderByColumn = 'AddedDate'
SET @OrderDirection = 1;
…
ORDER BY
CASE WHEN @OrderByColumn = 'AddedDate' THEN CONVERT(varchar(50), AddedDate)
WHEN @OrderByColumn = 'Visible' THEN CONVERT(varchar(2), Visible)
WHEN @OrderByColumn = 'AddedBy' THEN AddedBy
WHEN @OrderByColumn = 'Title' THEN Title
END
Run Code Online (Sandbox Code Playgroud) 我正在尝试从表中删除行但是我收到错误.
DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
Run Code Online (Sandbox Code Playgroud)
我在50时得到这个错误:
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的"50"附近使用正确的语法
不知道出了什么问题.
我有一些来自数据库的数据,我无法轻易改变其架构.我想对它进行排序并将其绑定到基于数字ID的控件.问题是API int在转换尝试时将数字存储在字符串字段中,而不是作为和Linq barfs存储.
myControl.DataSource = dataFromDB.OrderBy(o => int.Parse(o.StringHoldingAnInt));
Run Code Online (Sandbox Code Playgroud)
LINQ to Entities无法识别方法'Int32 Parse(System.String)'方法,并且此方法无法转换为存储表达式.
Convert.ToInt32 也不起作用.
LINQ to Entities无法识别方法'Int32 ToInt32(System.String)'方法,并且此方法无法转换为存储表达式.
排序为字符串是不合适的,因为这些值的长度不是全部相同,它们会按如下顺序排序:1,10,11,2,3 ..
我们正在从SQL Server 2008迁移到SQL Server 2012,并立即注意到我们所有的表值函数都不再以正确排序的顺序提供临时表内容.
码:
INSERT INTO @Customer
SELECT Customer_ID, Name,
CASE
WHEN Expiry_Date < GETDATE() then 1
WHEN Expired = 1 then 1
ELSE 0
END
from Customer **order by Name**
Run Code Online (Sandbox Code Playgroud)
在SQL Server 2008中,此函数返回按名称排序的客户.在SQL Server 2012中,它返回未排序的表.在"排序依据" 2012年SQL被忽略.
我们是否必须重新编写所有函数以包含a sort_id,然后在主应用程序中调用它们时对它们进行排序或是否有一个简单的修复?
在数据库中,我有以下格式的各种字母数字字符串:
10_asdaasda
100_inkskabsjd
11_kancaascjas
45_aksndsialcn
22_dsdaskjca
100_skdnascbka
Run Code Online (Sandbox Code Playgroud)
我希望它们基本上按字符串前面的数字排序,然后按字符串名称本身排序,但当然,字符会逐个进行比较,因此Order by name的结果会产生:
10_asdaasda
100_inkskabsjd
100_skdnascbka
11_kancaascjas
22_dsdaskjca
45_aksndsialcn
Run Code Online (Sandbox Code Playgroud)
而不是我更喜欢的顺序:
10_asdaasda
11_kancaascjas
22_dsdaskjca
45_aksndsialcn
100_inkskabsjd
100_skdnascbka
Run Code Online (Sandbox Code Playgroud)
老实说,如果字符串只按前面的数字排序,我会没事的.我对PostgreSQL不太熟悉,所以我不确定最好的方法是什么.我很感激任何帮助!
sql-order-by ×10
sql ×6
sql-server ×4
c# ×2
mysql ×2
.net ×1
case ×1
datatable ×1
iqueryable ×1
limit ×1
linq ×1
methods ×1
natural-sort ×1
postgresql ×1
select ×1
sorting ×1
sql-delete ×1
t-sql ×1