SQL,JAVA从SQL输出中删除重复字符串,数组排序

SQL,JAVA从SQL输出中删除重复字符串,数组排序,java,sql,arrays,sorting,duplicates,Java,Sql,Arrays,Sorting,Duplicates,我正在访问一个SQL数据库,我想检索列中的所有序列号,我的问题不在这里,我的问题是SQL语句带来了所有序列号,不管它是否重复 这是我的SQL语句 String sqlS = "Select (SerialNumber) from dbo.Results where ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" +ourJavaDateObject + "' AND '" + tomorrow + "'"; 以下是输出: 161102

我正在访问一个SQL数据库,我想检索列中的所有序列号,我的问题不在这里,我的问题是SQL语句带来了所有序列号,不管它是否重复

这是我的SQL语句

String sqlS = "Select (SerialNumber) from dbo.Results where ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" +ourJavaDateObject + "' AND '" + tomorrow + "'";
以下是输出:

16110201009
16110201014
16110201017
16110201048
16110201048
16110201048
16110201048
16110201048
16110201048
请注意,有6个相同的序列号,我如何排序以删除序列号

这是我想要的输出:

16110201009
16110201014
16110201017
16110201048

要获得唯一值,您需要使用关键字
DISTINCT

String sqlS = "SELECT DISTINCT (SerialNumber) FROM dbo.Results WHERE ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" +ourJavaDateObject + "' AND '" + tomorrow + "'";

但是,您的代码不安全,因为您直接解析参数。您是否考虑使用
PreparedStatement

来获取唯一值,您需要使用关键字
DISTINCT

String sqlS = "SELECT DISTINCT (SerialNumber) FROM dbo.Results WHERE ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" +ourJavaDateObject + "' AND '" + tomorrow + "'";
"Select distinct (SerialNumber) from dbo.Results where ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" + ourJavaDateObject + "' AND '" + tomorrow + "'"

但是,您的代码不安全,因为您直接解析参数。您是否考虑使用
PreparedStatement

使用DISTINCT关键字。转到此链接
从dbo.Results中选择distinct SerialNumber…
(不相关,但是:在括号之间放置一列或列列表是完全无用的)另外:请停止将值连接到SQL字符串中。使用带有占位符的
PreparedStatement
,我使用了distinct,它可以工作,您的解决方案可以工作,非常感谢。@aridi看起来您在处理此问题之前没有阅读数据库。请使用distinct关键字。转到此链接
从dbo.Results中选择distinct SerialNumber…
(不相关,但是:在括号之间放置一列或列列表是完全无用的)另外:请停止将值连接到SQL字符串中。使用带有占位符的
PreparedStatement
,我使用了不同的占位符,它可以工作,您的解决方案可以工作,非常感谢。@aridi看起来您在处理此问题之前没有阅读数据库。没有解释的答案不是答案。没有解释的答案不是答案。
"Select distinct (SerialNumber) from dbo.Results where ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" + ourJavaDateObject + "' AND '" + tomorrow + "'"