相关疑难解决方法(0)

如何使用ms sql更新和订购

理想情况下我想这样做:

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子句.

无论如何如何规避这个?

sql t-sql sql-server sql-order-by sql-update

49
推荐指数
3
解决办法
9万
查看次数

在更新语句中使用窗口函数

我有一个大的PostgreSQL表,我可以通过Django访问.因为Django的ORM不支持窗口函数,所以我需要将窗口函数的结果作为常规列烘焙到表中.我想做这样的事情:

UPDATE  table_name
SET     col1 = ROW_NUMBER() OVER ( PARTITION BY col2 ORDER BY col3 );
Run Code Online (Sandbox Code Playgroud)

但我明白了 ERROR: cannot use window function in UPDATE

任何人都可以提出替代方法吗?通过Django的.raw()方法传递窗口函数语法是不合适的,因为它返回一个RawQuerySet,它不支持我需要的其他ORM功能,如.filter().

谢谢.

sql django postgresql window-functions

32
推荐指数
1
解决办法
2万
查看次数

如何递增id字段的所有存储值

我有一个blocks用主键调用的表blockid.有数据开始blockid的0.现在的问题是,在另一个表中,blockid's从1开始所以,我需要得到所有的blockid'sblocks将递增1.
如何,我做到这一点?
有没有一个方便的功能来做到这一点,还是我们需要写一个?或者,我是否必须手动更改它(这不会花费太长时间,但有超过100行,所以,如果我不必这样做,我更喜欢它).

谢谢你的一切.

sql postgresql

3
推荐指数
1
解决办法
2424
查看次数

具有多个匹配项的查询中的UPDATE行

给定这样的更新语句:

UPDATE
     UserAssesment
SET
     AssessmentDate = comp.AssessmentDate     
FROM
     UserAssesment ua
INNER JOIN 
    vw_CompletedAssessments comp
On 
    ua.NatId = comp.NatId and
    ua.FamilyName = comp.ClientLastName and
    ua.GivenName = comp.ClientFirstName

WHERE
     ua.HasCompletedAssessment <> 0
Run Code Online (Sandbox Code Playgroud)

如果用户可以有多个与join子句匹配的vw_CompletedAssessments记录,哪个记录将用于更新?有没有办法订购它,以便使用最大值或最小值AssessmentDate

t-sql sql-server

0
推荐指数
1
解决办法
2219
查看次数