根据匹配值选择列A或B
问题描述:
我需要提取字符串的第一部分并将其存储在变量中。根据匹配值选择列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表中没有这样的列。
如何在此处检查匹配的列值? 任何帮助表示赞赏。
答
嗯,你的SQL很奇怪,因为你返回的是COUNT(*)
以及两列没有被聚合的东西。
的语法你想要的东西是:
SELECT Count(*) as count, Emp_Name, Emp_Id
FROM Employee
WHERE ? IN (Emp_Id, Emp_Name);
不过,我想从SELECT
删除Emp_Name
和Emp_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);
你能分享一些样本数据和你试图得到的结果吗? – Mureinik