标签: sql-order-by

Oracle PL/SQL中的自定义顺序

我有一个oracle查询,其中我希望结果是自定义顺序'SENIOR DIRECTOR','DIRECTOR','MANAGER','EMPLOYEE'来自GRADE_DESCRIPTON字段.我使用以下查询.

然而,我没有得到理想的结果我得到的结果的顺序是'高级主管','经理',总监,'员工'

SELECT DISTINCT GRADE_DESCRIPTION
      , HIRING_FORECATS.*  
FROM GRADE_MASTER left join     HIRING_FORECATS 
   ON (HIRING_FORECATS.GRADE = GRADE_MASTER.GRADE_DESCRIPTION 
        and HIRING_FORECATS.LOCATION = 'HO' )   
 order by decode    
 (GRADE_MASTER.GRADE_DESCRIPTION, 'SENIOR DIRECTOR', 'DIRECTOR', 'MANAGER', 'EMPLOYEE')
Run Code Online (Sandbox Code Playgroud)

有什么建议??

sql oracle sql-order-by

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

"按顺序排序"顺序相反?

欢迎,

我想知道是否可以在"按顺序排序"排序时反转返回的数据,但我希望这些数据的顺序相反.

例如,我得到了包含值的表

ID
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

我做到了

按照ID ASC LIMIT 3的顺序,我得到了

1
2
3
Run Code Online (Sandbox Code Playgroud)

当我通过ID DESC限制3订购时,我得到

4
3
2
Run Code Online (Sandbox Code Playgroud)

我想拥有

3
2
1
Run Code Online (Sandbox Code Playgroud)

所以我想通过ASC订购但反转结果.我一直在使用array_reverse在PHP端做这个,但今天我想问你.Maybye我错了,我只能在Mysql中做到这一点.问候

php mysql sql sql-order-by

14
推荐指数
2
解决办法
9万
查看次数

alpha列的条件SQL ORDER BY ASC/DESC

在MS SQL Server 2008 R2中编写存储过程,我想避免使用DSQL ...

我希望sort方法(ASC或DESC)是有条件的.

现在,使用数字列,我只需使用case语句并取消值来模拟ASC或DESC ......即:

... ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [NumericColumn] ELSE -[NumericColumn] END ASC
Run Code Online (Sandbox Code Playgroud)

使用alpha列执行此操作的适当方法是什么?

编辑:我想到了一个聪明的方法,但它看起来非常低效......我可以将我的有序alpha列插入带有自动编号的临时表中,然后使用上述方法按自动编号排序.

EDIT2:

你们怎么看待这种方法?

ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [AlphaColumn] ELSE '' END ASC,
CASE @OrderAscOrDesc WHEN 0 THEN '' ELSE [AlphaColumn] END DESC
Run Code Online (Sandbox Code Playgroud)

我不知道是否强制对统一列进行排序比从排序字符串中导出数字更有效

sql-server conditional stored-procedures sql-order-by

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

Sql Server查询varchar数据排序类似于int

我有一张桌子

CREATE TABLE table_name
(
P_Id int,
amount varchar(50)
)
Run Code Online (Sandbox Code Playgroud)

数据类似

Id amount
----------
1 2340
2 4568
3 10000
Run Code Online (Sandbox Code Playgroud)

现在我想按数量对表进行排序,但是一个问题是数量是varchar,所以它像这样对表进行排序

Id amount
----------
3 10000
1 2340
2 4568
Run Code Online (Sandbox Code Playgroud)

但我想要这样的结果

Id amount
----------
3 10000
2 4568
1 2340
Run Code Online (Sandbox Code Playgroud)

我该怎么办 ?

sql sql-server sql-order-by

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

选择一列,按另一列排序

我正在使用LINQ to SQL从数据库中进行选择.我想选择一个由值组成的列String,但是由另一个包含"优先级"值的列排序int.

这就是我的LINQ语句现在的样子:

var query = from vk in db.Valdkurs
            where vk.pnr == pnr
            select vk.kursnamn.OrderByDescending(x => vk.prioritet);
Run Code Online (Sandbox Code Playgroud)

在第三行代码NotSupportedException中抛出异常消息

类型'System.String'不支持序列运算符

我得出结论,这可能是因为

vk.kursnamn.OrderByDescending(x => vk.prioritet);
Run Code Online (Sandbox Code Playgroud)

哪里vk.KursnamnString类型.

我怎样才能选择vk.Kursnamn并按顺序排序vk.Priority

c# linq sql-order-by linq-to-sql

14
推荐指数
2
解决办法
3万
查看次数

SQL ORDER由`no`结尾的NULL

我有一个MySql查询,按no列命令我的结果(int,可以为null).简单的例子:

SELECT * FROM table ORDER BY no ASC

我想得到一个类似的结果集

1, 2, 3, 10, 52, 66, NULL, NULL, NULL

但我明白了

NULL, NULL, NULL, 1, 2, 3, 10, 52, 66

是否可以使用SQL查询?

mysql sql-order-by

13
推荐指数
1
解决办法
7441
查看次数

如何优化MASSIVE MySQL表上计算列的ORDER BY

我有一个非常大(超过80万行)的非规范化MySQL表.简化的架构如下所示:

+-----------+-------------+--------------+--------------+
|    ID     |   PARAM1    |   PARAM2     |   PARAM3     |
+-----------+-------------+--------------+--------------+
|    1      |   .04       |    .87       |    .78       |
+-----------+-------------+--------------+--------------+
|    2      |   .12       |    .02       |    .76       |
+-----------+-------------+--------------+--------------+
|    3      |   .24       |    .92       |    .23       |
+-----------+-------------+--------------+--------------+
|    4      |   .65       |    .12       |    .01       |
+-----------+-------------+--------------+--------------+
|    5      |   .98       |    .45       |    .65       |
+-----------+-------------+--------------+--------------+

我试图看看是否有一种优化查询的方法,其中我将权重应用于每个PARAM列(权重在0和1之间),然后将它们平均得出计算值SCORE.然后我想ORDER BY计算出的SCORE列.

例如,假设PARAM1的权重为.5,PARAM2的权重为.23,PARAM3的权重为.76,您最终会得到类似于:

SELECT ID, ((PARAM1 * .5) + (PARAM2 * .23) + (PARAM3 * .76)) / 3 …
Run Code Online (Sandbox Code Playgroud)

mysql sql-order-by query-optimization

13
推荐指数
1
解决办法
4603
查看次数

MySQL - 使用GROUP BY和DESC

在我的SQL查询中,我使用GROUP BYORDER BY子句选择数据.该表numbers在多行中具有相同的行,每行具有不同的时间.所以我想我想要应用GROUP BY子句.

但是在结果中返回最旧的时间与数字,但我需要最近的时间.

SELECT * FROM TABLE GROUP BY (numbers) ORDER BY time DESC
Run Code Online (Sandbox Code Playgroud)

查询看起来好像应首先应用GROUP BY然后ORDER BY ...但结果似乎不会以这种方式工作.

有没有什么办法解决这一问题?

mysql sql group-by sql-order-by

13
推荐指数
2
解决办法
5万
查看次数

使用DISTINCT时,LINQ to SQL不生成ORDER BY?

以下基本LINQ to SQL语句不会导致orderby工作.正如您在T-SQL中看到的那样,没有orderby.你知道为什么吗?

LINQ to SQL:

      var results = (from stats in db.t_harvest_statistics
                       orderby stats.unit_number
                       select stats.unit_number).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

以上TSQL中的结果

SELECT 
[Distinct1].[unit_number] AS [unit_number]
FROM ( SELECT DISTINCT 
[Extent1].[unit_number] AS [unit_number]
FROM [dbo].[t_harvest_statistics] AS [Extent1]
     )  AS [Distinct1]
Run Code Online (Sandbox Code Playgroud)

distinct sql-order-by linq-to-sql

13
推荐指数
1
解决办法
6292
查看次数

1这个订单是1?

我在MySQL中有一个问题,做得对.但书籍代码略有不同.

书:

use tennis;
select playerno, datediff(coalesce(end_date, current_date), 
begin_date) as Difference, position
from committee_members
where datediff(coalesce(end_date, current_date), begin_date) > 500
order by 1;
Run Code Online (Sandbox Code Playgroud)

1这个订单是什么?

我的代码也有效,几乎相同,除了:

select playerno, datediff(coalesce(end_date, current_date) AS Data,
order by Data;
Run Code Online (Sandbox Code Playgroud)

mysql sql-order-by

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