【问题标题】:How to create a SELECT query in to retrieve specific amount including duplicates如何创建 SELECT 查询以检索特定数量(包括重复项)
【发布时间】:2023-02-03 20:05:36
【问题描述】:

您好,我准备了一个演示 SQL 表,如下所示:

CREATE TABLE users
(
    Id   INT NOT NULL PRIMARY KEY CLUSTERED,
    name     NVARCHAR(MAX) NOT NULL,
    email    NVARCHAR(MAX) NOT NULL
);


INSERT INTO users VALUES (1, 'wuzzi', 'security@wunderwuzzi.net');
INSERT INTO users VALUES (2, 'mal2lory', 'mallory@example.org');
INSERT INTO users VALUES (3, 'hac4ker', 'hacker@example.org');
INSERT INTO users VALUES (4, 'wu3zzi', 'security@766.net');
INSERT INTO users VALUES (5, 'mallory', 'mallory@exam765ple.org');
INSERT INTO users VALUES (6, 'hackder', 'security@tre.g');
INSERT INTO users VALUES (7, 'wuzgzi', 'security@tre.g');
INSERT INTO users VALUES (8, 'mallorky', 'security@tre.g');
INSERT INTO users VALUES (9, 'hackmer', 'security@tre.g');
INSERT INTO users VALUES (10, 'bea', 'DIAdig');

我现在需要一个选择查询来检索 6 封个人电子邮件的所有 ID,包括重复邮件。

在此示例中,结果应为: 1,2,3,4,5,6,7,8,9

【问题讨论】:

  • 那么你的问题到底是什么?你在实现你所追求的目标时遇到的困难是什么?如果你想要个人电子邮件地址的 ID,你可以不使用 IN 吗? (尽管 WHERE 中针对您定义的可能包含 4,000 个字符或更多字符的列的子句不太可能具有高性能。)
  • 这只是一个简单的例子。想象一个包含超过 100000 个条目的表。考虑到 ID 6-9 之间的重复项,需要检索列表的特定数量(本例中为 6)。
  • 所以你的意思是如果有有效的电子邮件地址?那么 10 是因为没有有效的吗?

标签: sql sql-server tsql


【解决方案1】:

SELECT * FROM USERS WHERE email LIKE '%@%'

或者

从用户中选择前 9 *

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多