2017-10-08 59 views
0

我需要提取字符串的第一部分並將其存儲在變量中。根據匹配值選擇列A或B

final String[] split = InputValue.split("_", 2); 
final String extractedValue = split[0]; 

現在我需要做這樣的事情: 我需要檢查,如果extractedValue是列EMP_ID或EMP_NAME

"SELECT Count(*)as count,Emp_Name,Emp_Id FROM Employee WHERE extractedValue=? IN(Emp_Id,Emp_Name)"; 

preparedStatement.setString(1, extractedValue); 

我得到一個錯誤在Employee表中沒有這樣的列。

如何在此處檢查匹配的列值? 任何幫助表示讚賞。

+0

你能分享一些樣本數據和你試圖得到的結果嗎? – Mureinik

回答

1

嗯,你的SQL很奇怪,因爲你返回的是COUNT(*)以及兩列沒有被聚合的東西。

的語法你想要的東西是:

SELECT Count(*) as count, Emp_Name, Emp_Id 
FROM Employee 
WHERE ? IN (Emp_Id, Emp_Name); 

不過,我想從SELECT刪除Emp_NameEmp_Id。或者也許這樣做:

SELECT Count(*) as count, 
     GROUP_CONCAT(DISTINCT Emp_Name) as Emp_Names, 
     GROUP_CONCAT(DISTINCT Emp_Id) as Emp_Ids 
FROM Employee 
WHERE ? IN (Emp_Id, Emp_Name); 
相關問題