Вы не можете изменить цвет рамки, это - определенная система.
Вместо этого Вы могли попытаться выключить установку границы и затем размещение DataGridView в Панели. Где DataGridView установлен Прикрепиться. Заливка и Панель имеют Дополнение 1 пикселя на всех краях. Затем выбирание цвета фона Панели покажет границей вокруг содержавшего DataGridView.
Начнем с того, что я считаю самым простым, DISTINCT, на самом деле именно это. Он возвращает различные комбинации строк. Подумайте об этом наборе данных:
COL1 COL2 COL3
A B C
D E F
G H I
A B C <- duplicate of row 1
Это вернет 3 строки, потому что 4-я строка в наборе данных точно соответствует первой строке. Результат:
COL1 COL2 COL3
A B C
D E F
G H I
GROUP BY часто используется для сводок и других вычислений. выберите COL1, SUM (COL2) из таблицы group by column1;
Для этого набора данных:
COL1 COL2
A 5
A 6
B 2
C 3
C 4
C 5
вернет
COL1 SUM(COL2)
A 11
B 2
C 12
UNION просто берет результаты из разных запросов и представляет их как 1 набор результатов:
Table1
COL1
A
Table2
COLX
B
Table3
WHATEVER_COLUMN_NAME
Giddyup
select COL1 from Table1
UNION
select COLX from Table2
UNION
select WHATEVER_COLUMN_NAME from Table3;
Набор результатов:
A
B
Giddyup
При выполнении объединения типы данных столбца должны совпадать. Вы не можете ОБЪЕДИНЯТЬ числовой столбец со столбцом char (если вы явно не выполните преобразование данных)
Предположим, что это данные вашей базы данных:
column1 | column2 | column3
1 | 2 | 1
1 | 2 | 2
1 | 2 | 1
3 | 1 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
В первом примере вы получите все комбинации столбцов из базы данных (как GROUP BY 1,2, 3
ничего не делает), включая дубликаты, поэтому он вернет:
1 | 2 | 1
1 | 2 | 2
1 | 2 | 1
3 | 1 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
Второй пример принимает уникальные значения для кортежей столбцов, поэтому вы закончите с
1 | 2 | 1
1 | 2 | 2
3 | 1 | 2
Последний запрос принимает все значения из три столбца, а затем он удаляет дубликаты из этого набора. Таким образом, вы получите все значения из любой из таблиц. В конце концов это вернет
1
2
3
Это проясняет?
Если вы включите «Фактический план выполнения» (control + M в MS SQL Management Studio), он даст вам диаграмму того, как механизм SQL оптимизирует каждый из ваших заявления. Понимание этого поможет вам лучше писать запросы.
Давайте возьмем образец набора данных.
orderid customer orderdate
1 B July 29
2 A Aug 1
3 A Aug 4
4 C Aug 5
5 B Aug 6
6 A Aug 11
Distinct в основном возвращает единственный экземпляр данной записи без дубликатов всего набора столбцов в наборе результатов. Пример: «выбрать отдельного клиента из заказов» вернет «A», «B», «C» по умолчанию в алфавитном порядке выбранных столбцов.
Группа по должна выполнять агрегирование в заданном наборе полей в запрос. Пример:
выберите клиента, подсчитайте (*) как NumberOfOrders из группы заказов на 1
Would result with...
A 3
B 2
C 1
Вы также можете применить отдельный (только один раз) в пределах запроса, но внутри данной группы ..
выберите клиента, подсчитайте (*) как NumberOfOrders, считать (отдельный {месяц даты заказа}) как CustomerMonths из группы заказов по клиенту
Would result with
A 3 1 (all orders were in August)
B 2 2 (had orders in July and August)
C 1 1 (only one order in August)
Объединения - это запросы, которые должны иметь одинаковый формат результата, имена столбцов и последовательность полей. Допустим, у вас есть таблица заказов, которая имеет ту же структуру, что и архивная версия данных. Вы храните только текущие данные за последний год, все исторические данные помещаются в архив. Если вы хотите получить ВСЕ действия по заказу для данного клиента в одном запросе, вам нужно выполнить объединение
select customerid, orderdate, amount из CurrentOrders, где customerid = ?? порядок по 2 по убыванию СОЮЗ select customerid, orderdate, amount из ArchivedOrders, где customerid = ??
Предложение ORDER by первого выбора будет управлять результатами, все последующие записи будут добавлены в результаты. Это похоже на SQL-запрос: «Перейти к первой таблице, получить все необходимое, а затем выполнить сортировку». Затем перейдите к таблице 2, получите все, что соответствует требованиям, и вставьте в существующий отсортированный список из таблицы 1. Конечный результат - ВСЕ записи.
HTH