2016-11-02 4 views
0

Я получаю доступ к базе данных SQL, и я хочу получить все серийные номера в столбце, моя проблема не здесь, моя проблема заключается в том, что инструкция sql приносит все серийные номера номера его дублируют или нет.SQL, JAVA Удалить повторяющиеся строки из SQL-вывода, Array Sort

Вот мое заявление 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 
+2

использование DISTINCT ключевое слово. Перейдите по этой ссылке https://www.tutorialspoint.com/sql/sql-distinct-keyword.htm – Lokesh

+2

'Выберите отдельный SerialNumber из dbo.Results ...' (несвязанный, но: помещая столбец или список столбцов между круглые скобки полностью бесполезны) –

+1

Также: прекратите соединять значения в строку SQL. Используйте 'PreparedStatement' с заполнителями –

ответ

3

Чтобы получить уникальные значения, нужно использовать ключевое слово DISTINCT.

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

Однако ваш код не является безопасным против SQL injection, потому что вы разбираете аргументы непосредственно. Вы думаете об использовании PreparedStatement?

1
"Select distinct (SerialNumber) from dbo.Results where ErrorCode != 0 AND LineNumber = 1 AND TMDT BETWEEN '" + ourJavaDateObject + "' AND '" + tomorrow + "'" 
+1

Ответ без объяснения не является ответом. – TimeToCode

Смежные вопросы