我有一个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)
有什么建议??
欢迎,
我想知道是否可以在"按顺序排序"排序时反转返回的数据,但我希望这些数据的顺序相反.
例如,我得到了包含值的表
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中做到这一点.问候
在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)
我不知道是否强制对统一列进行排序比从排序字符串中导出数字更有效
我有一张桌子
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)
我该怎么办 ?
我正在使用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.Kursnamn是String类型.
我怎样才能选择vk.Kursnamn并按顺序排序vk.Priority?
我有一个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查询?
我有一个非常大(超过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) 在我的SQL查询中,我使用GROUP BY和ORDER BY子句选择数据.该表numbers在多行中具有相同的行,每行具有不同的时间.所以我想我想要应用GROUP BY子句.
但是在结果中返回最旧的时间与数字,但我需要最近的时间.
SELECT * FROM TABLE GROUP BY (numbers) ORDER BY time DESC
Run Code Online (Sandbox Code Playgroud)
查询看起来好像应首先应用GROUP BY然后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) 我在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) sql-order-by ×10
mysql ×5
sql ×4
linq-to-sql ×2
sql-server ×2
c# ×1
conditional ×1
distinct ×1
group-by ×1
linq ×1
oracle ×1
php ×1