- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
我的SQL表如下所示
| 装置_编号|姓名|交易方编号|
| - ------| - ------| - ------|
| 小行星1700|设施|000018727|
| 小行星1800|人力资源|000018728|
| 小行星18|专业人员|000092293|
| 一八零二|人力资源|000092294|
| 小行星1803|招募|000092295|
| 小行星1804|学习与发展|000092296|
| 一八零五|行政部门|零零零零零零七八三|
| 小行星1900|资讯科技|000018729|
| 小行星1901|资讯科技|000092297|
| 餐饮|餐饮|000045759|
| 产品。|产品|小行星000103719|
我想对上表做一个层次结构,其中1700、1800、1900 ...(在第100位)在第1级,而随后的1801、1802分别在第2级、第3级。
对此应该使用什么查询?我想向表中添加一个level列
3条答案
按热度按时间7bsow1i61#
您可以按如下方式使用密集秩函数:
要使非数字值显示在层次级别的底部,请使用以下命令:
要使非数字值显示在层次级别的顶部,请使用以下命令:
如果您想将not number值与(1700,1800,...)沿着放在第1级,请尝试以下操作:
See demo
ssgvzors2#
您可以尝试以下操作:
然后增加两个值,重复上述步骤。
这可以通过一个
UPDATE
中的一个更复杂的命令以及一些字符串操作和类型转换来完成,但听起来这将是一个一次性操作,所以我认为尝试这样做没有太大的价值。jrcvhitl3#
听起来像是在寻找取模运算符:
Modulo返回一个值除以指定值后的余数。在本例中,我们想知道Unit_Number除以100后的余数是多少。为了按照您的要求从索引为1的值开始,我们将其加1。
100返回0,+1:1 101返回1,+1:2
然后,我们只使用它来更新HeierarchyLevel列。
当您为此类问题提供演示数据时,以易于重用的格式提供演示数据非常有用,这样人们就可以快速解决您的问题。