SQL Server - получить столбец, у которого есть конкретное значение -- sql поле с участием sql-server пол Связанный проблема

SQL Server - Get column who have specific value


0
vote

проблема

русский

У меня есть запрос SQL, который возвращает:

 <код> id    |  value  1         a  1         a  1         b  2         a  2         a   

Я хочу получить только идентификатор, у которого есть только значение <код> a . Так что ID 2

Как это сделать?

Английский оригинал

I have a SQL query which returns :

id    |  value  1         a  1         a  1         b  2         a  2         a 

I want to get only id who have only the value a. So the id 2

How to do this ?

</div
     

Список ответов

2
 
vote

Вы можете использовать агрегацию и иметь предложение, чтобы проверить, есть ли все строки значения «A» для данного идентификатора:

Использование <код> while (fileInput.hasNextLine()) { first_name = fileInput.next(); last_name = fileInput.next(); grade = fileInput.nextInt(); Student st = new Student(first_name, last_name,grade); System.out.println(st); } 0 :

 <код> while (fileInput.hasNextLine()) {     first_name = fileInput.next();     last_name = fileInput.next();     grade = fileInput.nextInt();      Student st = new Student(first_name, last_name,grade);    System.out.println(st);  } 1  

или используя <код> while (fileInput.hasNextLine()) { first_name = fileInput.next(); last_name = fileInput.next(); grade = fileInput.nextInt(); Student st = new Student(first_name, last_name,grade); System.out.println(st); } 2

 <код> while (fileInput.hasNextLine()) {     first_name = fileInput.next();     last_name = fileInput.next();     grade = fileInput.nextInt();      Student st = new Student(first_name, last_name,grade);    System.out.println(st);  } 3  
 

You can use aggregation and having clause to check if all the rows have value 'a' for a given id:

Using Count:

select id from t group by id having count(*) = count(case when value = 'a' then 1 end); 

Or using Sum

select id from t group by id having SUM(case when value = 'a' then 0 else 1 end) = 0; 
</div
 
 
0
 
vote

Используйте следующий код: -

 <код> while (fileInput.hasNextLine()) {     first_name = fileInput.next();     last_name = fileInput.next();     grade = fileInput.nextInt();      Student st = new Student(first_name, last_name,grade);    System.out.println(st);  } 4  

Подсказка проходит <код> while (fileInput.hasNextLine()) { first_name = fileInput.next(); last_name = fileInput.next(); grade = fileInput.nextInt(); Student st = new Student(first_name, last_name,grade); System.out.println(st); } 5 для <код> while (fileInput.hasNextLine()) { first_name = fileInput.next(); last_name = fileInput.next(); grade = fileInput.nextInt(); Student st = new Student(first_name, last_name,grade); System.out.println(st); } 6 и пройти <код> while (fileInput.hasNextLine()) { first_name = fileInput.next(); last_name = fileInput.next(); grade = fileInput.nextInt(); Student st = new Student(first_name, last_name,grade); System.out.println(st); } 7 для других, а затем иметь сумму равно <код> while (fileInput.hasNextLine()) { first_name = fileInput.next(); last_name = fileInput.next(); grade = fileInput.nextInt(); Student st = new Student(first_name, last_name,grade); System.out.println(st); } 8 .

 

Use the next code:-

Select id   from #test group by id  having sum (case when value = 'a' then 0 else 1 end) = 0 

The clue is passing 0 for 'a' and pass 1 for other, then having sum equals 0

</div
 
 
0
 
vote

Это немного медленнее, чем ответ @gurwinder Singh, но может быть более читабелен, если производительность не является вашим главным приоритетом.

 <код> while (fileInput.hasNextLine()) {     first_name = fileInput.next();     last_name = fileInput.next();     grade = fileInput.nextInt();      Student st = new Student(first_name, last_name,grade);    System.out.println(st);  } 9  
 

This is slightly slower than @Gurwinder Singh's answer but can be more readable if performance is not your top priority.

CREATE TABLE tmp (id int, [value] char(1))  INSERT INTO tmp values (1,'a'),(1,'a'),(1,'b'),(2,'a'),(2,'a')  SELECT DISTINCT id FROM tmp a WHERE [value] = 'a'     AND id NOT IN (         SELECT id FROM tmp         WHERE [value] <> 'a') 
</div
 
 

Связанный проблема

2  Microsoft Access - SQL - внутренний внешний ключ  ( Microsoft access sql internal foreign key ) 
MS Access 2007 поддерживает внутренние зарубежные ключевые ключи в одной таблице? ...

-1  SQL MS Access Создайте псевдоним с использованием умножения столбцов  ( Sql ms access create an alias using multiplication of columns ) 
Здравствуйте, у меня возникли проблемы с новым столбцом «псевдоним» в моем коде SQL, умногая два значения столбца. Вопрос: Составьте запрос, чтобы показ...

0  Java - проблемы с присоединением  ( Java trouble joining tables ) 
Я работаю с базой данных SQL, которая имеет 3 таблицы. Страна, город и деревенскому языку. Строка запросов, которую я создаю, содержит данные, которые наход...

2  Условная сумма на основе даты (сверхурочная сумма по контракту)  ( Conditional sum based on date sum overtime by contract ) 
У меня есть стол с <Код> ID (Commonse_id), <код> Name , <код> time_worked , <код> time_to_work , <код> Contract_Start_Date , <код> Date_of_Entry . Эта таблиц...

1  Как я могу выбрать, используя пересечение стоимости разделенного запятой?  ( How can i select using an intersection of comma separated value ) 
У меня есть столбец, удерживает значения, разделенные запятыми. <код> 1,2,3 4,6,7 2,3,8 12234,5467,232445,232455,11223 с заданными критериями массива (н...

0  Сумма дебета на базе месяца в SQL  ( Sum of debit on the base of month in sql ) 
У меня есть квитанция об имени таблицы Скретко, как следует, <код> account_no date transaction_type amount s1 2012-7-7 opening ...

1  Почему не будет DB2 позвольте мне иметь столбец в том случае?  ( Why wouldnt db2 let me have a column in where clause ) 
У меня есть удаленная база данных DB2, которую я получаю через ODBC. Когда у меня есть запрос, как <код> SELECT t.foo, t.bar, t.problemcolumn FROM problemta...

98  Подключение к серверу Microsoft SQL с помощью Python  ( Connecting to microsoft sql server using python ) 
<Р> Я пытаюсь подключиться к SQL через питон для запуска некоторых запросов на некоторых базах данных SQL на сервере Microsoft SQL. Из моих исследований в Инте...

8  MySQL Заказ с использованием строки даты данных  ( Mysql order by using date data row ) 
У меня есть запрос что-то подобное: <код> public class AlarmReciever extends BroadcastReceiver { AlarmClock alarmClock=new AlarmClock(); @Override public v...

4  Есть ли способ получить типы / имена неизвестного запроса БД, не выполняя его?  ( Is there a way to get types names of an unknown db query without executing it ) 
У меня есть веб-приложение, в котором пользователи вводят произвольные запросы SQL для последующей пакетной обработки. Мы хотим подтвердить синтаксис запроса,...

1  Сумма количества членом  ( Sum of quantities by member ) 
Наличие некоторых проблем в операторе SQL для WordPress. Создан пользовательское поле «Member_Name», который проходит в порядке3 под ключ = Member_Name. Мне н...

0  Вставка в Oracle последовательно  ( Are insert in oracle sequential ) 
У меня есть стол в Oracle. Я создаю несколько пакетных заданий. Каждая пакетная задача вставила некоторое количество записей в таблице. Я хотел узнать, буду...

0  Linq 2 SQL Использование содержит [дубликат]  ( Linq 2 sql using contains ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

-1  Используйте SELECT Под действие  ( Use select under case statement ) 
Я хочу использовать запрос, который позволяет мне получить два различия в зависимости от фильтра. Я попробовал это, но не работает. <код> CASE WHEN filtre =...

0  Как вы используете PHP и SQL для отправки данных таблицы на другую таблицу  ( How do you use php and sql to submit table data to another table ) 
У меня есть таблица полетов, и я использую цикл, чтобы распечатать информацию о рейсах, наряду с кнопкой отправки, кнопка, которая нажала, - это представленны...

Связанный проблема

2  Microsoft Access - SQL - внутренний внешний ключ 
-1  SQL MS Access Создайте псевдоним с использованием умножения столбцов 
0  Java - проблемы с присоединением 
2  Условная сумма на основе даты (сверхурочная сумма по контракту) 
1  Как я могу выбрать, используя пересечение стоимости разделенного запятой? 
0  Сумма дебета на базе месяца в SQL 
1  Почему не будет DB2 позвольте мне иметь столбец в том случае? 
98  Подключение к серверу Microsoft SQL с помощью Python 
8  MySQL Заказ с использованием строки даты данных 
4  Есть ли способ получить типы / имена неизвестного запроса БД, не выполняя его? 
1  Сумма количества членом 
0  Вставка в Oracle последовательно 
0  Linq 2 SQL Использование содержит [дубликат] 
-1  Используйте SELECT Под действие 
0  Как вы используете PHP и SQL для отправки данных таблицы на другую таблицу