Задачи по базам данных и SQL
Основы языка SQL, задачи и решения к ним.
Админ: @anothertechrock
Post #127
2.42K
Какого строкового типа данных нет в SQL?
SQ @prosql
Showing posts older than #128 · Back to latest
ORDER BY 2 сработает только в том случае, когда в SELECT указаны по крайней мере две колонки. employee содержит 2 колонки, выбирается только 1 колонка. Поэтому такой запрос будет выдавать ошибку. employee имеет две колонки: emp_name и emp_id. Какой результат возвратит следующий SQL запрос:SELECT emp_name FROM employee ORDER BY 2 DESC;#вопросы #собеседование

SELECT#tips
SUBSTRING_INDEX (SUBSTRING_INDEX (fullname, ' ', 1), ' ', -1) AS name,
IF (LENGTH (fullname) - LENGTH (REPLACE (fullname, ' ', '')) > 1,
SUBSTRING_INDEX(SUBSTRING_INDEX (fullname, ' ', 2), ' ', -1), NULL)
AS middlename,
SUBSTRING_INDEX (SUBSTRING_INDEX (fullname, ' ', 3), ' ', -1) AS surname
FROM customers;
fullname таблицы customers содержится имя, отчество и фамилия в следующем формате: 'name middlename surname'.name, middlename и surname в отдельные столбцы. Если middlename не существует, то в результате в middlename должен быть NULL.• name = 'Alena', • middlename = 'Igorevna', • surname = 'Petrova'. • name = 'Jack', • middlename = NULL, • surname = 'Powers'.SELECT, если мы группируем по нескольким полям. SELECT field1 FROM table GROUP BY field1, field2;#вопросы #собеседование
NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:SELECT name, SUM (score) AS scвыдаст:
FROM table
GROUP BY name;
GROUP BY обрабатывает поля с NULL? GREATEST:SELECT customer, GREATEST (value_1, value_2) FROM table;В SQL Server подобной функции нет, поэтому можно решить эту задачу так:
SELECT customer, MAX (x.combined_val) AS greatest#tips
FROM table AS u
CROSS APPLY (SELECT u.value_1 UNION ALL SELECT u.value_2) AS x(combined_val)
GROUP BY customer;
WITH ct AS (А какие еще варианты решения данной проблемы вы знаете?
SELECT id, name, CONCAT ('EU:', city) AS city_m
FROM customers
)
SELECT ct.*
FROM ct
WHERE ct.city_m = 'EU:Oslo';