标签: query

用于编写 Access SQL 语句的在线资源

我正在寻找用于编写 Access SQL 语句的在线资源。我使用 SQL 编写查询,因为 UI 限制了可以查询的内容。我一直在使用w3schools作为参考,但是 MS-Access 有时的语法略有不同,因此当我运行查询时会出现错误。然后我最终浪费时间试图找出我做错了什么,却发现 Access 的做法不同。

ms-access query

7
推荐指数
1
解决办法
2584
查看次数

LIKE 选择文本中任意位置独立存在的单词

在此处输入图片说明

我有一个包含以下文本的表格,我要搜索的关键字是“搜索”。所以我写了一个查询

SELECT [ID]
  ,[TextValue]
FROM
   [dbo].[SearchLike]
WHERE
   [TextValue] LIKE '%Search%'
Run Code Online (Sandbox Code Playgroud)

Q.1如何修改查询,以便只返回文本中包含“搜索”的记录,而不是使用“LSearch”。即根据图像前三个记录只返回。?

sql-server-2008 query pattern-matching

7
推荐指数
2
解决办法
6008
查看次数

如何有效地查询和聚合规范化的 SQL 数据库?

关于在单个存储过程中返回多个聚合的最有效方法?

我有一个电子邮件类型的应用程序,想为用户选择所有消息(收件箱)。问题是我将电子邮件的标题部分规范化到数据库中,这样平面数据就会进入消息表,而从、到、抄送、密件抄送则存储到另一个表中。

根据 PK/ FK 关系。

我非常重视的一件事是 SQL 解决方案的效率,因为这将是多次执行的代码,并且可能是整个数据库中运行次数最多的 sql

这里的上下文是我的数据库模式的视图。

数据库架构

sql-server-2005 query

7
推荐指数
2
解决办法
3854
查看次数

当我无法控制数据库变量时处理临时表

我有过类似的事情无法控制tmp_table_sizemax_heap_table_size,所以作为我们成长的表,要求临时表的查询所用的时间是几何级数增长。

我想知道是否有办法防止 MySQL 对这些查询使用临时表?在这种情况下最好的方法是什么:

这是最大的罪犯的一个例子:

SELECT `skills`.`id`
FROM (`jobs_skills`)
JOIN `jobs` ON (`jobs`.`id` = `jobs_skills`.`job_id`)
JOIN `skills` ON (`skills`.`id` = `jobs_skills`.`skill_id`)
WHERE `jobs`.`job_visibility_id` = 1
AND `jobs`.`active` = 1
AND `skills`.`valid` = 1
AND `jobs_skills`.`skill_id` IN (96,101,103,108,121,2610,99,119,2607,102,104,112,113,122,1032,1488,2608,109,126,1438,2310,2318,2622,118,1046,1387,2609,100,116,123,2611,2612,2616,2618,114,127,1562,1587,1608,2276,2615,125,1070,1071,1161,1658,2613,2614,2617,105,110,111,120,1394,1435)
GROUP BY `jobs_skills`.`job_id`
Run Code Online (Sandbox Code Playgroud)

其中copying to temp table耗时 107 秒,占总查询时间的 99%。

尽管担心 tl;dr 综合征,我还是提供。. .

更多细节

以下是EXPLAIN查询语句:

+----+-------------+-------------+--------+----------------------+--------------+---------+----------------------------------+--------+----------------------------------------------+
| id | select_type | table       | type   | possible_keys        | key          | key_len | ref                              | rows …
Run Code Online (Sandbox Code Playgroud)

mysql innodb query temporary-tables

7
推荐指数
1
解决办法
609
查看次数

查询性能

为什么

SELECT Barraportfolioname
FROM   portfolio
WHERE  id IN (SELECT DISTINCT i1.portfolioid
              FROM   Import i1
                     LEFT OUTER JOIN Import i2
                       ON i1.PortfolioID = i2.PortfolioID
                          AND i2.ImportSetID = 82
              WHERE  i1.ImportSetID = 83
                     AND i2.ID IS NULL)  
Run Code Online (Sandbox Code Playgroud)

需要 0 秒,而以下查询需要 5 秒。

SELECT DISTINCT p.BarraPortfolioName AS name
FROM   Import i1
       INNER JOIN Portfolio p
         ON p.ID = i1.PortfolioID
       LEFT OUTER JOIN Import i2
         ON i1.PortfolioID = i2.PortfolioID
            AND i2.ImportSetID = 82
WHERE  i1.ImportSetID = 83
       AND i2.ID IS NULL;  
Run Code Online (Sandbox Code Playgroud)

我正在使用 SQL Server。这两个表在查询中使用的所有列上都有索引,即portfolioid、id、importsetid。 …

performance sql-server query

7
推荐指数
2
解决办法
330
查看次数

如何查询以基于行的 MIN 和 MAX 服务日期提取所有数据?

我对 Oracle SQL 非常陌生,尤其是在 Pentaho 报告生成器中。它可以让你做一些事情并阻止其他人。PL/SQL 不可用,因此我必须在查询中执行此操作。

我需要能够为他们MIN(service_date)和他们的MAX(service_date). 下面是表格数据和我想得到的结果。

表格数据

client_id | service_date  | other_stuff 
--------------------------------------- 
        1 | 2/24/2010     | Bob
        1 | 3/23/2010     | Jane
        1 | 4/23/2010     | Sam
        2 | 1/1/2000      | Julie
        2 | 2/2/2000      | Tina
        3 | 3/28/2005     | D'Shaun
        3 | 4/27/2005     | Leisha
        3 | 5/29/2005     | Tonay
Run Code Online (Sandbox Code Playgroud)

结果数据

client_id | service_date | other_stuff
--------------------------------------
        1 | 2/24/2010     | Bob
        1 | 4/23/2010     | Sam
        2 | 1/1/2000 …
Run Code Online (Sandbox Code Playgroud)

oracle query

6
推荐指数
1
解决办法
7553
查看次数

PostgreSQL如何从匿名代码块返回数据?

我有一个表 mytable (id, "someLongURI", status, "userId") 和一个工作查询:

UPDATE          mytable
SET             status = 'IN_WORK'
WHERE           "someLongURI" IN (
    SELECT      "someLongURI"
    FROM        mytable
    WHERE       status = 'UNUSED'
    AND         pg_try_advisory_xact_lock(id)
    ORDER BY    id ASC 
    LIMIT       1
    FOR UPDATE 
)
RETURNING       id, "someLongURI";
Run Code Online (Sandbox Code Playgroud)

但现在我需要检查“userId”参数,并基于此选择现有行或更新(并接收更新的行)。类似的东西(在 MySQL 中这可以工作):

IF NOT EXISTS (
    SELECT          1
    FROM            mytable tbl
    WHERE           tbl."userId" = 123
)
THEN
    UPDATE          mytable tbl
    SET             tbl.status = 'IN_WORK',
                    tbl."userId" = 123
    WHERE           tbl."someLongURI" IN (
        SELECT      "someLongURI"
        FROM        tbl.mytable
        WHERE       tbl.status = 'UNUSED'
            AND …
Run Code Online (Sandbox Code Playgroud)

postgresql query

6
推荐指数
1
解决办法
7683
查看次数

为什么 SQL Server 将它的 (JSON) 响应拆分为多行?

我正在尝试构建一个查询,该查询会生成一个由 SQL Server 生成的 JSON 对象。我发现我可以使用子查询用包含问题列表的 JSON 字符串填充字段(在本例中为问题字段)。

下面是查询:

SELECT
    quizzes.id AS 'id',
    quizzes.name AS 'name',
    quizzes.description AS 'description',
    quizzes.instructions AS 'instructions',
    author.id AS 'author.id',
    author.midas AS 'author.midas',
    author.first_name AS 'author.first_name',
    author.last_name AS 'author.last_name',
    author.email AS 'author.email',
    author.tel AS 'author.tel',
    author.department_name AS 'author.department_name',
    author.created_at AS 'author.created_at',
    author.last_updated AS 'author.last_updated',
    course.id AS 'course.id',
    course.name AS 'course.name',
    course.description AS 'course.description',
    course.crn AS 'course.crn',
    instructor.id AS 'course.instructor.id',
    instructor.midas AS 'course.instructor.midas',
    instructor.first_name AS 'course.instructor.first_name',
    instructor.last_name AS 'course.instructor.last_name',
    instructor.email AS 'course.instructor.email',
    instructor.tel AS 'course.instructor.tel',
    instructor.department_name …
Run Code Online (Sandbox Code Playgroud)

sql-server query subquery json

6
推荐指数
1
解决办法
729
查看次数

如何计算 SQL 中输入字符串的所有分组排列?

给定像“ABC”这样的输入,生成一个查询,计算给定字符串的 0 个或多个的所有潜在分割,

期望的输出,

A   B   C
A   BC
AB  C
ABC
Run Code Online (Sandbox Code Playgroud)

给定一个像“ABCD”这样的输入

A    B   C    D
A    BC  D
A    B   CD
AB   C   D
A    BCD
AB   CD
ABC  D
ABCD
Run Code Online (Sandbox Code Playgroud)

并不是所有关心输出如何形成、数组、行、json 等。更多的是寻找分组的所有排列的离散列表。

postgresql query recursive

6
推荐指数
1
解决办法
1292
查看次数

查询sys.dm_db_log_info()函数,同时减少到最大值

我目前正在查询sys.dm_db_log_info()DMV 以从数据库检索 VLF,以确定何时可以收缩、重组和减少 TLOG 文件中的碎片量(10 MB VLF)。

原因是,如果事务位于 TLOG 文件末尾并导致活动 VLF,则无法收缩 TLOG 文件。类似的情况,如果活动事务驻留在 TLOG 文件的中间,那么您就无法缩小到超过该 VLF。

当前声明

我目前有这个语句来检索MAX(vlf_begin_offset)记录、MIN(vlf_begin_offset)记录和任何具有 active 的记录vlf_active = 1

SELECT ddli.vlf_begin_offset,
       ddli.vlf_sequence_number,
       ddli.vlf_active,
       ddli.vlf_status,
       ddli.vlf_first_lsn
FROM   sys.dm_db_log_info(DB_ID()) AS ddli
WHERE  ddli.vlf_begin_offset = (
           SELECT MIN(ddli2.vlf_begin_offset)
           FROM   sys.dm_db_log_info(DB_ID()) AS ddli2
       )
       OR  ddli.vlf_active = 1
       OR  ddli.vlf_begin_offset = (
               SELECT MAX(ddli3.vlf_begin_offset)
               FROM   sys.dm_db_log_info(DB_ID()) AS ddli3
           )
ORDER BY
       ddli.vlf_begin_offset ASC
Run Code Online (Sandbox Code Playgroud)

当所有记录都返回时,结果集如下所示:

+------------------+---------------------+------------+------------+------------------------+
| vlf_begin_offset | vlf_sequence_number | vlf_active | vlf_status …
Run Code Online (Sandbox Code Playgroud)

sql-server query dmv sql-server-2016

6
推荐指数
2
解决办法
323
查看次数