Skip to content

Commit a827d95

Browse files
committed
distinct unique로 표시되는 문제 수정
1 parent 7a16dbd commit a827d95

File tree

7 files changed

+46
-45
lines changed

7 files changed

+46
-45
lines changed

.idea/workspace.xml

Lines changed: 0 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

input.json

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,35 @@
11
{
22
"CRUD": ["SELECT"],
3-
"COLUMN": [
4-
"AAA.EQUIP_ID",
5-
"C.SESSION_ID",
6-
"E.COLLECT_ITEM_ID"
7-
],
8-
"JOIN 1": ["LEFT OUTER JOIN TB_RESOURCE C ON AAA.SECTOR_ID = C.SECTOR_ID"],
9-
"JOIN 2": [
10-
"INNER JOIN TB_EQUIP_ITEM D ON AAA.EQUIP_MODEL_ID = D.EQUIP_MODEL_ID",
11-
"INNER JOIN TB_EQUIP_COLLECT_ITEM E ON D.COLLECT_ITEM_ID = E.COLLECT_ITEM_ID"
12-
],
13-
"JOIN ALIAS 1": ["C"],
14-
"JOIN ALIAS 2": [
15-
"D",
16-
"E"
17-
],
18-
"TABLE": ["(SELECT A.EQUIP_ID, A.SECTOR_ID, B.EQUIP_MODEL_ID FROM TB_EQUIP A INNER JOIN TB_EQUIP_MODEL B ON A.EQUIP_MODEL_ID = B.EQUIP_MODEL_ID INNER JOIN TB_EQUIP_TYPE C ON B.EQUIP_TYPE_ID = C.EQUIP_TYPE_ID WHERE A.USE_YN = 'Y' AND C.EQUIP_TYPE_ID = 'equipTypeId' AND A.SECTOR_ID = (SELECT SECTOR_ID FROM TB_SECTOR WHERE CONTAINER_NAME = 'containerName' AND GATEWAY = 'gateway' AND CONTAINER = 'container')) AAA"],
19-
"TABLE ALIAS": ["AAA"],
20-
"TABLE SUB QUERY 1": ["(SELECT A.EQUIP_ID, A.SECTOR_ID, B.EQUIP_MODEL_ID FROM TB_EQUIP A INNER JOIN TB_EQUIP_MODEL B ON A.EQUIP_MODEL_ID = B.EQUIP_MODEL_ID INNER JOIN TB_EQUIP_TYPE C ON B.EQUIP_TYPE_ID = C.EQUIP_TYPE_ID WHERE A.USE_YN = 'Y' AND C.EQUIP_TYPE_ID = 'equipTypeId' AND A.SECTOR_ID = (SELECT SECTOR_ID FROM TB_SECTOR WHERE CONTAINER_NAME = 'containerName' AND GATEWAY = 'gateway' AND CONTAINER = 'container'))"],
3+
"DISTINCT": ["TRUE"],
4+
"COLUMN": ["VAL"],
5+
"TABLE": ["((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3')) T"],
6+
"TABLE ALIAS": ["T"],
7+
"TABLE SUB QUERY 1": ["((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3'))"],
218
"TABLE SUB QUERY ANALYSE 1": {
229
"CRUD": ["SELECT"],
23-
"COLUMN": [
24-
"A.EQUIP_ID",
25-
"A.SECTOR_ID",
26-
"B.EQUIP_MODEL_ID"
27-
],
28-
"JOIN 1": ["INNER JOIN TB_EQUIP_MODEL B ON A.EQUIP_MODEL_ID = B.EQUIP_MODEL_ID"],
29-
"JOIN 2": ["INNER JOIN TB_EQUIP_TYPE C ON B.EQUIP_TYPE_ID = C.EQUIP_TYPE_ID"],
30-
"JOIN ALIAS 1": ["B"],
31-
"JOIN ALIAS 2": ["C"],
32-
"TABLE": ["TB_EQUIP A"],
33-
"TABLE ALIAS": ["A"],
34-
"WHERE": ["A.USE_YN = 'Y' AND C.EQUIP_TYPE_ID = 'equipTypeId' AND A.SECTOR_ID = (SELECT SECTOR_ID FROM TB_SECTOR WHERE CONTAINER_NAME = 'containerName' AND GATEWAY = 'gateway' AND CONTAINER = 'container')"],
35-
"WHERE SUB QUERY 1": ["(SELECT SECTOR_ID FROM TB_SECTOR WHERE CONTAINER_NAME = 'containerName' AND GATEWAY = 'gateway' AND CONTAINER = 'container')"],
36-
"WHERE SUB QUERY ANALYSE 1": {
10+
"COLUMN": ["FIELD1 AS VAL"],
11+
"TABLE": ["TABLE1"],
12+
"UNION ALL 1": ["SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2'"],
13+
"UNION ALL 2": ["SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3'"],
14+
"UNION ALL 3": ["SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3'"],
15+
"UNION ALL ANALYSE 1": {
3716
"CRUD": ["SELECT"],
38-
"COLUMN": ["SECTOR_ID"],
39-
"TABLE": ["TB_SECTOR"],
40-
"WHERE": ["CONTAINER_NAME = 'containerName' AND GATEWAY = 'gateway' AND CONTAINER = 'container'"]
41-
}
17+
"COLUMN": ["FIELD2"],
18+
"TABLE": ["TABLE1"],
19+
"WHERE": ["CONDITION2 = 'CONDITION2'"]
20+
},
21+
"UNION ALL ANALYSE 2": {
22+
"CRUD": ["SELECT"],
23+
"COLUMN": ["FIELD3"],
24+
"TABLE": ["TABLE3"],
25+
"WHERE": ["CONDITION3 = 'CONDITION3'"]
26+
},
27+
"UNION ALL ANALYSE 3": {
28+
"CRUD": ["SELECT"],
29+
"COLUMN": ["FIELD3"],
30+
"TABLE": ["TABLE3"],
31+
"WHERE": ["CONDITION3 = 'CONDITION3'"]
32+
},
33+
"WHERE": ["CONDITION1 = 'CONDITION1'"]
4234
}
4335
}
Binary file not shown.

output.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(SELECT AAA.EQUIP_ID, C.SESSION_ID, E.COLLECT_ITEM_ID FROM (SELECT A.EQUIP_ID, A.SECTOR_ID, B.EQUIP_MODEL_ID FROM TB_EQUIP A INNER JOIN TB_EQUIP_MODEL B ON A.EQUIP_MODEL_ID = B.EQUIP_MODEL_ID INNER JOIN TB_EQUIP_TYPE C ON B.EQUIP_TYPE_ID = C.EQUIP_TYPE_ID WHERE A.USE_YN = 'Y' AND C.EQUIP_TYPE_ID = 'equipTypeId' AND A.SECTOR_ID = (SELECT SECTOR_ID FROM TB_SECTOR WHERE CONTAINER_NAME = 'containerName' AND GATEWAY = 'gateway' AND CONTAINER = 'container')) AAA LEFT OUTER JOIN TB_RESOURCE C ON AAA.SECTOR_ID = C.SECTOR_ID INNER JOIN TB_EQUIP_ITEM D ON AAA.EQUIP_MODEL_ID = D.EQUIP_MODEL_ID INNER JOIN TB_EQUIP_COLLECT_ITEM E ON D.COLLECT_ITEM_ID = E.COLLECT_ITEM_ID)
1+
SELECT DISTINCT VAL FROM ((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3')) T

src/com/inzapp/jsonToSqlParser/JsonToSqlParser.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.inzapp.jsonToSqlParser;
22

33
import com.inzapp.jsonToSqlParser.config.Config;
4+
import com.inzapp.jsonToSqlParser.config.JsonKey;
45
import com.inzapp.jsonToSqlParser.core.Parser;
56
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
67
import org.json.JSONObject;
@@ -30,6 +31,8 @@ public static void main(String[] args) {
3031
System.out.println("parse failure");
3132
return;
3233
}
34+
sql = jsonToSqlParser.removeOuterBracket(sql);
35+
// sql = jsonToSqlParser.changeLine(sql);
3336

3437
try {
3538
System.out.println("input json\n");
@@ -51,6 +54,7 @@ public String parse(String jsonString) {
5154
try {
5255
String sql = new Parser().parse(new JSONObject(jsonString));
5356
sql = removeOuterBracket(sql);
57+
// sql = changeLine(sql);
5458
// TODO : auto line change
5559
CCJSqlParserUtil.parse(sql); // query execution test
5660
return sql;
@@ -68,8 +72,18 @@ private String removeOuterBracket(String sql) {
6872
} else return sql;
6973
}
7074

71-
private void changeLine(String sql) {
72-
75+
private String changeLine(String sql) {
76+
sql = sql.replaceAll(JsonKey.SELECT, JsonKey.SELECT + '\n');
77+
sql = sql.replaceAll(JsonKey.UPDATE, JsonKey.UPDATE + '\n');
78+
// sql = sql.replaceAll(JsonKey.DELETE, JsonKey.DELETE + '\n');
79+
80+
sql = sql.replaceAll("FROM", "\nFROM\n");
81+
sql = sql.replaceAll("WHERE", "\nWHERE\n");
82+
sql = sql.replaceAll("AND", "AND\n");
83+
sql = sql.replaceAll(",", ",\n");
84+
sql = sql.replaceAll("\\(", "\\(\n");
85+
sql = sql.replaceAll("\\)", "\\)\n");
86+
return sql;
7387
}
7488

7589
private JSONObject readJsonFromFile(String fileName) {

src/com/inzapp/jsonToSqlParser/core/crudParser/SelectParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ private void addDistinct() {
3131
// distinct
3232
List<String> distincts = getFromJson(JsonKey.DISTINCT);
3333
if (distincts != null)
34-
this.plainSelect.setDistinct(new Distinct(true));
34+
this.plainSelect.setDistinct(new Distinct());
3535
}
3636

3737
private void addColumns() {

0 commit comments

Comments
 (0)