Java 使用多个条件连接两个SQL语句以连续运行
我有一张如下所示的表:Java 使用多个条件连接两个SQL语句以连续运行,java,sql,database,jdbc,Java,Sql,Database,Jdbc,我有一张如下所示的表: Row Student Major 1 Jenn Math 2 Jenn Science 3 Jenn CS 4 Mark English 5 Mark History 6 Steve Math 7 Steve Science 8 Steve Engineering 9
Row Student Major
1 Jenn Math
2 Jenn Science
3 Jenn CS
4 Mark English
5 Mark History
6 Steve Math
7 Steve Science
8 Steve Engineering
9 Ann Biology
10 Ann Chemistry
我试图在连续的行中寻找模式,学生从数学专业改为科学专业,然后改为第三专业,并标记这些值,这样我就可以:
Row Name Major Flagged_Values
1 Jenn Math
2 Jenn Science
3 Jenn CS 1
4 Mark English
5 Mark History
6 Steve Math
7 Steve Science
8 Steve Engineering 1
9 Ann Biology
10 Ann Chemistry
在这种情况下,学生Jenn和Steve遇到了这个标准,所以他们会被标记为1
然后,我连续标记那些主修数学、科学和工程的学生,在本例中为Steve,并添加另一个带有1的专栏。我的问题是,如果我有两个单独的语句来标记这些模式,然后我想标记满足这两个标准的值,我将如何做?我会使用addBatch方法吗?我有代码,但它不能产生预期的结果。我正在使用JavaJDBC和使用Oracle数据库的SQL库
String x = "SELECT STUDENTS.ROW, STUDENTS.MAJOR, STUDENTS.NAME " +
"CASE WHEN prior_row.NAME IS NOT NULL" +
"AND EXISTS(SELECT 'x' FROM STUDENTS prior_row " +
"WHERE STUDENTS.MAJOR = prior_row.MAJOR" +
"AND STUDENTS.ROW > prior_row.ROW + 1" +
"SELECT STUDENTS.MAJOR, STUDENTS.ROW, STUDENTS.NAME WHERE" +
"MAJOR < (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'MATH'
"AND WHERE MAJOR > (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'SCIENCE' THEN 1 ELSE NULL END Flagged_Values";
st.addBatch(x);
String y = "SELECT STUDENTS.ROW, STUDENTS.MAJOR, STUDENTS.NAME" +
"CASE WHEN previous.NAME IS NOT NULL" +
"AND EXISTS(SELECT 'y' FROM STUDENTS previous" +
"WHERE STUDENTS.MAJOR = previous.MAJOR" +
"AND STUDENTS.ROW > previous.ROW + 1" +
"SELECT STUDENTS.MAJOR, STUDENTS.ROW, STUDENTS.NAME WHERE" +
"MAJOR < (SELECT THE_OUTCOME FROM STUDENTINFO WHERE MAJOR ='Math' +
"AND WHERE MAJOR > (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'SCIENCE'" +
"AND WHERE MAJOR > (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'Engineering'
"THEN 1 ELSE NULL END Flag ";
st.addBatch(y);
我试图比较连续的实例。我的第二个问题:这算是数据挖掘吗?任何帮助都将不胜感激。addBatch仅用于DML插入、更新和删除语句。只需使用ExecuteQuery一个接一个地运行这两条语句,您使用的是哪个数据库?一匹没有名字的马,谢谢,您的答案很有用!