sqlCREATE TABLE SalesPerson (
sales_id INT PRIMARY KEY,
name VARCHAR(50),
salary INT,
commission_rate INT,
hire_date DATE
);
CREATE TABLE Company (
com_id INT PRIMARY KEY,
name VARCHAR(50),
city VARCHAR(50)
);
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
order_date DATE,
com_id INT,
sales_id INT,
amount INT,
FOREIGN KEY (com_id) REFERENCES Company(com_id),
FOREIGN KEY (sales_id) REFERENCES SalesPerson(sales_id)
);
-- 插入 SalesPerson 表数据
INSERT INTO SalesPerson (sales_id, name, salary, commission_rate, hire_date)
VALUES (1, 'John', 100000, 6, '2006-04-01'),
(2, 'Amy', 12000, 5, '2010-05-01'),
(3, 'Mark', 65000, 12, '2008-12-25'),
(4, 'Pam', 25000, 25, '2005-01-01'),
(5, 'Alex', 5000, 10, '2007-02-03');
-- 插入 Company 表数据
INSERT INTO Company (com_id, name, city)
VALUES (1, 'RED', 'Boston'),
(2, 'ORANGE', 'New York'),
(3, 'YELLOW', 'Boston'),
(4, 'GREEN', 'Austin');
-- 插入 Orders 表数据
INSERT INTO Orders (order_id, order_date, com_id, sales_id, amount)
VALUES (1, '2014-01-01', 3, 4, 10000),
(2, '2014-02-01', 4, 5, 5000),
(3, '2014-03-01', 1, 1, 50000),
(4, '2014-04-01', 1, 4, 25000);
SELECT
s.name
FROM
SalesPerson as s
WHERE
s.sales_id NOT IN (SELECT
o.sales_id
FROM
Orders o
LEFT JOIN
Company c ON o.com_id = c.com_id
WHERE
c.name = 'RED')
;
左连接、右连接以及内连接(也称为等值连接)是在数据库查询中常用的连接类型。它们用于将两个或多个表中的数据连接起来,以便通过共享的列进行联接和检索相关的数据。
内连接(INNER JOIN):只返回两个表中同时满足连接条件的行。只有在连接列上具有匹配值的行才会被返回。
左连接(LEFT JOIN):返回左表中的所有行以及满足连接条件的右表中的匹配行。如果右表中没有匹配的行,则返回 NULL 值。
右连接(RIGHT JOIN):返回右表中的所有行以及满足连接条件的左表中的匹配行。如果左表中没有匹配的行,则返回 NULL 值。
选择使用哪种连接类型依赖于你想要从查询中获取的结果。
你还可以根据具体的业务需求使用其他类型的连接,如全连接(FULL JOIN)和交叉连接(CROSS JOIN),这些连接类型更为特殊和灵活。
sql
CREATE TABLE Segments (
x INT,
y INT,
z INT,
PRIMARY KEY (x, y, z)
);
-- 插入 Triangle 表数据
INSERT INTO Segments (x, y, z)
VALUES (13, 15, 30),
(10, 20, 15);
SELECT x, y, z,
CASE
WHEN x + y > z AND x + z > y AND y + z > x THEN 'Yes'
ELSE 'No'
END AS triangle
FROM Segments;
CASE WHEN是SQL中的条件表达式,它允许你根据条件对结果进行条件性的选择和处理。它的基本语法如下:
sqlCASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
CASE WHEN语句逐个检查条件,如果某个条件为真,则返回相应的结果。如果没有任何条件为真,则返回ELSE子句中的结果。以下是对CASE WHEN的详细解释:
在解决问题时,CASE WHEN经常用于根据条件生成计算字段、进行条件筛选和分类、执行数据转换等。
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!