Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle按列值排序_Sql_Oracle - Fatal编程技术网

Sql Oracle按列值排序

Sql Oracle按列值排序,sql,oracle,Sql,Oracle,我试图解释我的实时场景如下。我有两个表,我需要一个查询来返回基于课程值排序的学生。在下面的示例中,生成的学生ID将按2、3、1的顺序排列 STUDENT ID NAME PRIORITY STATUS 1 ABC 2 BCD 3 CDE 学生 ID名称优先级状态 1 ABC 公元前2年 3 CDE 变量 V_ID STU_ID键值 1姓名1 2.1**课程**MCA 3 1地点1 4姓名2 5.2**课程**BCA 6 2地点2 7 3姓名1 8 3**课程**FCA 9

我试图解释我的实时场景如下。我有两个表,我需要一个查询来返回基于课程值排序的学生。在下面的示例中,生成的学生ID将按2、3、1的顺序排列

STUDENT ID NAME PRIORITY STATUS 1 ABC 2 BCD 3 CDE 学生 ID名称优先级状态 1 ABC 公元前2年 3 CDE 变量 V_ID STU_ID键值 1姓名1 2.1**课程**MCA 3 1地点1 4姓名2 5.2**课程**BCA 6 2地点2 7 3姓名1 8 3**课程**FCA 9 3地点1 所需结果(排序后,以相同的排序顺序显示两个表中的数据):

ID名称键值 2 BCD名称2 2 BCD**课程**BCA 2 BCD place place2 3 CDE名称1 3 CDE**课程**FCA 3 CDE place place1 1 ABC姓名1 1 ABC**课程**MCA 1 ABC place place1 谢谢你的帮助

谢谢,
Swamy.

似乎您只需要使用常规联接,如下所示

SELECT student.id
from variable
join student 
on variable.stu_id= student.id
where variable.key= '**course**'
order by variable.value asc

看起来您只需要使用一个常规连接,如下所示

SELECT student.id
from variable
join student 
on variable.stu_id= student.id
where variable.key= '**course**'
order by variable.value asc

只需两次加入变量,一次用于获取订单,一次用于所有数据。订单的联接需要仅在学生和密钥上,以便所有记录都应用“排序顺序课程”

虽然我不确定你在课程后对每个学生进行了什么排序,以获得你的结果。关键是有一些道理,但如果没有硬编码的情况下,我无法得到你的结果

With student (ID,   NAME, PRIORITY, STATUS) as  (
SELECT 1,    'ABC', NULL, NULL FROM DUAL UNION ALL
SELECT 2,    'BCD', NULL, NULL FROM DUAL UNION ALL
SELECT 3,    'CDE', NULL, NULL FROM DUAL),
"VARIABLE" (V_ID,   STU_ID,   "KEY",          "VALUE") as (
SELECT 1,      1,        'name',         'name1' FROM DUAL UNION ALL
SELECT 2,      1,        '**course**',   'MCA' FROM DUAL UNION ALL
SELECT 3,      1,        'place',        'place1' FROM DUAL UNION ALL
SELECT 4,      2,        'name',         'name2' FROM DUAL UNION ALL
SELECT 5,      2,        '**course**',   'BCA' FROM DUAL UNION ALL
SELECT 6,      2,        'place',        'place2' FROM DUAL UNION ALL
SELECT 7,      3,        'name',         'name1' FROM DUAL UNION ALL
SELECT 8,      3,        '**course**',   'FCA' FROM DUAL UNION ALL
SELECT 9 ,     3,        'place',        'lace1' FROM DUAL)

SELECT V.STU_ID, S.Name, V.Key, V.VALUE
FROM STUDENT S
INNER JOIN VARIABLE V
 on S.ID = V.Stu_ID
LEFT JOIN VARIABLE V2
 on S.ID = V2.Stu_ID and V2.Key = '**course**'
ORDER BY V2.Value, V.Key

只需两次加入变量,一次用于获取订单,一次用于所有数据。订单的联接需要仅在学生和密钥上,以便所有记录都应用“排序顺序课程”

虽然我不确定你在课程后对每个学生进行了什么排序,以获得你的结果。关键是有一些道理,但如果没有硬编码的情况下,我无法得到你的结果

With student (ID,   NAME, PRIORITY, STATUS) as  (
SELECT 1,    'ABC', NULL, NULL FROM DUAL UNION ALL
SELECT 2,    'BCD', NULL, NULL FROM DUAL UNION ALL
SELECT 3,    'CDE', NULL, NULL FROM DUAL),
"VARIABLE" (V_ID,   STU_ID,   "KEY",          "VALUE") as (
SELECT 1,      1,        'name',         'name1' FROM DUAL UNION ALL
SELECT 2,      1,        '**course**',   'MCA' FROM DUAL UNION ALL
SELECT 3,      1,        'place',        'place1' FROM DUAL UNION ALL
SELECT 4,      2,        'name',         'name2' FROM DUAL UNION ALL
SELECT 5,      2,        '**course**',   'BCA' FROM DUAL UNION ALL
SELECT 6,      2,        'place',        'place2' FROM DUAL UNION ALL
SELECT 7,      3,        'name',         'name1' FROM DUAL UNION ALL
SELECT 8,      3,        '**course**',   'FCA' FROM DUAL UNION ALL
SELECT 9 ,     3,        'place',        'lace1' FROM DUAL)

SELECT V.STU_ID, S.Name, V.Key, V.VALUE
FROM STUDENT S
INNER JOIN VARIABLE V
 on S.ID = V.Stu_ID
LEFT JOIN VARIABLE V2
 on S.ID = V2.Stu_ID and V2.Key = '**course**'
ORDER BY V2.Value, V.Key

按“键”排序的
有什么问题?
你的查询在哪里?啊,那些可怕的键/值表。请显示所需的结果。同时显示您尝试过的查询,并解释您的问题所在。@ThorstenKettner是否有一种方法可以多次向上投票评论?:P@swampy课程值排序后,它需要按什么顺序排列?我看不到真正的模式,或者这有关系吗?按“键”排序有什么问题吗??你的查询在哪里?啊,那些可怕的键/值表。请显示所需的结果。同时显示您尝试过的查询,并解释您的问题所在。@ThorstenKettner是否有一种方法可以多次向上投票评论?:P@swampy课程值排序后,它需要按什么顺序排列?我看不出真正的模式,或者这有关系吗?谢谢你的快速回复。我的问题中遗漏了一些信息。对此我很抱歉。最后,查询应该按照查询返回的相同顺序返回两个表中的所有数据。感谢您的快速回复。我的问题中遗漏了一些信息。对此我很抱歉。最后,查询应该按照查询返回的相同顺序返回两个表中的所有数据。