理想情况下我想这样做:
UPDATE TOP (10) messages SET status=10 WHERE status=0 ORDER BY priority DESC;
Run Code Online (Sandbox Code Playgroud)
英文:我想从数据库中获取前10个可用(状态= 0)消息并锁定它们(状态= 10).应首先获得具有更高优先级的消息.
遗憾的是,MS SQL不允许更新中的order by子句.
无论如何如何规避这个?
我有一个存储ID和商店所在城市的表.
我想列出从商店最多的商店开始的所有商店.
表
ID CITY
1 NYC
2 BOS
3 BOS
4 NYC
5 NYC
Run Code Online (Sandbox Code Playgroud)
我想要的输出是以下,因为我在纽约市拥有最多的商店,我希望首先列出所有纽约市的位置.
1 NYC
4 NYC
5 NYC
2 BOS
3 BOS
Run Code Online (Sandbox Code Playgroud) 将字符串列表排序的正确方法是什么,我希望以下划线'_'开头的项目位于列表的底部,否则一切都是按字母顺序排列的.
现在我正在做这样的事情,
autoList.OrderBy(a => a.StartsWith("_") ? "ZZZZZZ"+a : a )
Run Code Online (Sandbox Code Playgroud) 简短问题
当连接到PostgreSQL数据库时,从Django过滤器调用返回的列表的默认顺序是什么?
背景
通过我自己也承认,我曾提出在应用一个糟糕的假设层,在其返回一个列表中的顺序将是常数,即不使用"ORDER_BY".我查询的项目列表不是按字母顺序或任何其他故意的顺序.它被认为保持与添加到数据库中的顺序相同.
这个假设适用于数百个查询,但是当订单在不知不觉中发生变化时,我的应用程序报告了失败.据我所知,在这段时间内没有触及这些记录,因为我是维护数据库的唯一人.令人困惑的是,当在Mac OS X上运行Django应用程序时,它仍然按预期工作,但在Win XP上,它改变了顺序.(请注意,上面提到的数百个查询都在Win XP上).
任何对此的见解都会有所帮助,因为我在Django或PostgreSQL文档中找不到解释操作系统差异的任何内容.
示例呼叫
required_tests = Card_Test.objects.using(get_database()).filter(name__icontains=key)
Run Code Online (Sandbox Code Playgroud)
编辑
今天与我的一些同事交谈后,我得到了与BjörnLindqvist相同的答案.
回想起来,我明白为什么这样做经常出错.使用ORM Django,sqlalchemy或其他任何一个好处是您可以编写命令而无需了解或理解(详细)它所连接的数据库.不可否认,我碰巧是其中一个用户.然而,另一方面,在不知道数据库的情况下,这样的调试错误非常麻烦并且可能是灾难性的.
如何在一个结果集中获取表的第一条记录和表的最后记录?
此查询失败
SELECT TOP 1 Id,Name FROM Locations ORDER BY Id
UNION ALL
SELECT TOP 1 Id,Name FROM Locations ORDER BY Id DESC
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我有下表:
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
Run Code Online (Sandbox Code Playgroud)
我想要做的是选择3个最近的记录(按时间desc),其中otheridentifiers是不同的.所以在这种情况下,结果将是id's:5,4和2.
id将跳过= 3,因为最近的记录具有相同的otheridentifier字段.
这是我试图做的事情:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
Run Code Online (Sandbox Code Playgroud)
然而,我最终得到的行id= 5,3,和1而不是5,4,2按预期方式.
有人能告诉我为什么这个查询不会返回我的预期吗?我尝试将ORDER BY更改为ASC,但这只是将返回的行重新排列为1,3,5.
据我所知,从关系数据库理论来看,一个select没有order by条款的陈述应该被认为没有特别的顺序.但实际上在SQL Server和Oracle中(我在这两个平台上进行了测试),如果我从没有order by多次子句的表中查询,我总是以相同的顺序得到结果.这种行为是否可以依赖?有人可以帮忙解释一下吗?
在Oracle中,如果未指定"order by"子句,则select查询的行的缺省排序是什么.
是吗
能帮我解决这个问题吗?我试图按日期排序SQL查询的结果,但我没有得到我需要的结果.
我正在使用的查询是:
SELECT date FROM tbemp ORDER BY date ASC
Run Code Online (Sandbox Code Playgroud)
结果是:
01/02/2009
03/01/2009
04/06/2009
05/03/2009
06/12/2008
07/02/2009
Run Code Online (Sandbox Code Playgroud)
结果应该是:
06/12/2008
03/01/2009
01/02/2009
07/02/2009
Run Code Online (Sandbox Code Playgroud)
我需要以上面的格式选择日期.
非常感谢您的帮助.
我遇到了一个简单的问题; 奋力如何调用order by上join编辑实体.基本上我正在努力实现以下目标JPA Criteria:
select distinct d from Department d
left join fetch d.children c
left join fetch c.appointments a
where d.parent is null
order by d.name, c.name
Run Code Online (Sandbox Code Playgroud)
我有以下内容:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<Department> c = cb.createQuery(Department.class);
Root<Department> root = c.from(Department.class);
Fetch<Department, Department> childrenFetch = root.fetch(
Department_.children, JoinType.LEFT);
childrenFetch.fetch(Department_.appointments, JoinType.LEFT);
c.orderBy(cb.asc(root.get(Department_.name)));
c.distinct(true);
c.select(root);
c.where(cb.isNull(root.get(Department_.parent)));
Run Code Online (Sandbox Code Playgroud)
如何实现order by d.name, c.name用Criteria API?我尝试使用Expression,Path但是没有用.任何指针将不胜感激.
sql-order-by ×10
sql ×4
sql-server ×3
mysql ×2
oracle ×2
.net ×1
c# ×1
count ×1
criteria-api ×1
date ×1
django ×1
django-orm ×1
group-by ×1
java ×1
jpa ×1
linq ×1
postgresql ×1
python ×1
select ×1
sorting ×1
sql-update ×1
t-sql ×1
union-all ×1