【编程技术】这个查询的SQL语句怎么写啊?
登录 | 论坛导航 -> 华新鲜事 -> 技术の宅 | 本帖共有 30 楼,分 2 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  2    末页>>
作者:JavaProg (等级:2 - 初出茅庐,发帖:184) 发表:2018-01-17 10:37:17  楼主  关注此帖
【编程技术】这个查询的SQL语句怎么写啊?
一个员工表,有三列

name,category,salary

John, contract,     2000
Joe,   permanent, 2300
Annie,contract,    2050
Jerry, contract,    2550
Tom, permanent, 2340


现在查询表,按照工资从高到低排列,正式工排前面,合同工排后面,如上表,应该输出这样:

 

Tom,permanent, 2340

Joe, permanent,2300

Jerry,contract,  2550

Annie,contract,  2050

John,contract,   2000



SQL语句如何写啊?



该帖荣获当日十大第3,奖励楼主15分以及22华新币,时间:2018-01-17 22:00:02。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:しろ (等级:8 - 融会贯通,发帖:2544) 发表:2018-01-17 10:38:13  2楼
又来了
lz你上次都没有谢谢人家
[本文发送自华新iOS App]
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:JavaProg (等级:2 - 初出茅庐,发帖:184) 发表:2018-01-17 10:46:40  3楼
又来了lz你上次都没有谢谢人家
赶紧去感谢了!哈哈
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:冰镇荔枝 (等级:6 - 驾轻就熟,发帖:3451) 发表:2018-01-17 10:53:21  4楼
LZ 为啥不去stackoverflow
我看IT的人都去那里。。。。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:云邪者 (等级:2 - 初出茅庐,发帖:47) 发表:2018-01-17 10:54:40  5楼
试试这个
select name, category, salary where category = 'permanent' order by salary
union all
select name, category, salary where category = 'contract' order by salary
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:云邪者 (等级:2 - 初出茅庐,发帖:47) 发表:2018-01-17 10:55:52  6楼
掉了薪水的逆排序
select name, category, salary where category = 'permanent' order by salary desc
union all
select name, category, salary where category = 'contract' order by salary desc
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:rexwolf (等级:2 - 初出茅庐,发帖:372) 发表:2018-01-17 11:03:47  7楼
stackoverflow啊
不过这个这么简单 你确定你不要重新学一下sql?
[本文发送自华新iOS App]
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:japgolly (等级:4 - 马马虎虎,发帖:1980) 发表:2018-01-17 11:04:06  8楼
掉了薪水的逆排序select name, category, salary where category = 'permanent' order by salary desc union all select name, category, salary where category = 'contract' order by salary desc
。。。
还用这么麻烦。

直接select name, category, salary order by category, salary desc不就完了。。category里的“Permanent”的首字母本来就在“Contract”之前,按倒叙的话本身Perm就在前面。

另外LZ用的是Oracle还是SQL server??如果Oracle的话Order by里面没有那个逗号。稍有区别
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:icky (等级:15 - 最接近神,发帖:7923) 发表:2018-01-17 11:06:11  9楼
掉了薪水的逆排序select name, category, salary where category = 'permanent' order by salary desc union all select name, category, salary where category = 'contract' order by salary desc
我在想如果category有20个value怎么办
可以 order by category = ('permanent', 'contract') 吗?

不然就是用case,还是有点麻烦的
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:japgolly (等级:4 - 马马虎虎,发帖:1980) 发表:2018-01-17 11:06:19  10楼
stackoverflow啊不过这个这么简单 你确定你不要重新学一下sql?
应该是打算转行的吧
对新人要有耐心嘛
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:icky (等级:15 - 最接近神,发帖:7923) 发表:2018-01-17 11:07:43  11楼
。。。还用这么麻烦。 直接select name, category, salary order by category, salary desc不就完了。。category里的“Permanent”的首字母本来就在“Contract”之前,按倒叙的话本身Perm就在前面。 另外LZ用的是Oracle还是SQL server??如果Oracle的话Order by里面没有那个逗号。稍有区别
那自定义的顺序就没这么容易了
比如,你要按 p, t, s, m 排列
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:japgolly (等级:4 - 马马虎虎,发帖:1980) 发表:2018-01-17 11:10:13  12楼
那自定义的顺序就没这么容易了比如,你要按 p, t, s, m 排列
LZ的问题是
把正式工排在合同工前面,说明这个category只有两个decodes。你确定你看清楚问题了?
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:beerguy (等级:4 - 马马虎虎,发帖:1603) 发表:2018-01-17 11:11:40  13楼
掉了薪水的逆排序select name, category, salary where category = 'permanent' order by salary desc union all select name, category, salary where category = 'contract' order by salary desc
这个完全不合理, performance太差
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:icky (等级:15 - 最接近神,发帖:7923) 发表:2018-01-17 11:13:37  14楼
LZ的问题是把正式工排在合同工前面,说明这个category只有两个decodes。你确定你看清楚问题了?
看清楚了啊
反正能做,以后有其他value再说。。。

是吧
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:sonatam (等级:6 - 驾轻就熟,发帖:4548) 发表:2018-01-17 11:17:31  15楼
delete from table
commit
[本文发送自华新iOS App]
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:japgolly (等级:4 - 马马虎虎,发帖:1980) 发表:2018-01-17 11:23:31  16楼
看清楚了啊反正能做,以后有其他value再说。。。 是吧
问题是其他的value根本不存在啊
你想太多了。。想确保date integrity的话我会直接在这个table上加constraints,不允许插入除perm和contract以外其他的value。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:icky (等级:15 - 最接近神,发帖:7923) 发表:2018-01-17 11:27:22  17楼
问题是其他的value根本不存在啊你想太多了。。想确保date integrity的话我会直接在这个table上加constraints,不允许插入除perm和contract以外其他的value。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:JavaProg (等级:2 - 初出茅庐,发帖:184) 发表:2018-01-17 11:56:40  18楼
试试这个select name, category, salary where category = 'permanent' order by salary union all select name, category, salary where category = 'contract' order by salary
试了,这个可以的。多谢
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:JavaProg (等级:2 - 初出茅庐,发帖:184) 发表:2018-01-17 11:57:34  19楼
。。。还用这么麻烦。 直接select name, category, salary order by category, salary desc不就完了。。category里的“Permanent”的首字母本来就在“Contract”之前,按倒叙的话本身Perm就在前面。 另外LZ用的是Oracle还是SQL server??如果Oracle的话Order by里面没有那个逗号。稍有区别
多谢多谢,都很好
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:rexwolf (等级:2 - 初出茅庐,发帖:372) 发表:2018-01-17 12:06:08  20楼
应该是打算转行的吧对新人要有耐心嘛
耐心要看问题
这种问题如果自己都解决不出来 不建议转行
[本文发送自华新iOS App]
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
论坛导航 -> 华新鲜事 -> 技术の宅 | 返回上一页 | 本主题共有 30 篇文章,分 2 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  2  末页>>

请登录后回复:帐号   密码