标签: query

将 blob 从一行复制到另一行

我连续有一个损坏的斑点。
我想用同一张表中的另一个斑点替换它。

我怎样才能只使用sql语句来做到这一点?(如果可能的话,不访问文件系统。)

mysql query

2
推荐指数
1
解决办法
9805
查看次数

SQL 获取分区边界和文件组

对于给定的分区方案名称,我需要检索一组

  • 边界值
  • 文件组名称

必须在不存在参与该方案的任何表的情况下起作用。

通过 sys.indexes 加入将不起作用。

认为答案在于 sys.destination_data_spaces,但尚未弄清楚与 sys.partition_range_values 的连接。

sql-server query metadata partitioning sql-server-2012

2
推荐指数
1
解决办法
2615
查看次数

没有订单的数据库偏移和限制?

据我了解,在 MySQL/Postgres 数据库中,不能保证没有 order-by 子句的 select 语句的值顺序,因此应该任意获取行。如果是这样,那么为什么在执行此类查询时通常没有重复项?

SELECT * FROM `table` LIMIT 0,5
SELECT * FROM `table` LIMIT 5,5
SELECT * FROM `table` LIMIT 10,5
Run Code Online (Sandbox Code Playgroud)

考虑到人们只关心不获取重复项而不关心排序,这些查询使用起来是否安全?如果是,那又如何?

mysql postgresql query

2
推荐指数
1
解决办法
2433
查看次数

如何向时间戳列添加日/夜指示器?

timestamp我用一列来指示一行是在白天还是晚上创建的。我的代码如下,但由于某种原因,我只得到“DAY”作为结果。我没有正确格式化值吗?

select record_id, rec_date,
       case when date_part('hour', rec_date) between 20 and 07 then 'Night'
            else 'Day' end as Indicator
from records;      
Run Code Online (Sandbox Code Playgroud)

rec_date列是一个时间戳,我可以在其中看到诸如2019-11-20 21:34:02.000000- 之类的值,它应该得到一个'Night'指标。

postgresql query date-format date date-math

2
推荐指数
1
解决办法
784
查看次数

如何在“IN”语句中使用关键字“VALUES”?

我在 sql server 2016

select @@version
Run Code Online (Sandbox Code Playgroud)

Microsoft SQL Server 2016 (SP2-CU15) (KB4577775) - 13.0.5850.14 (X64) Sep 17 2020 22:12:45 版权所有 (c) Microsoft Corporation Enterprise Edition:Windows Server 2012 R2 上的基于内核的许可(64 位)数据中心 6.3(内部版本 9600:)(管理程序)

在 sql server 中的一个简单插入语句中,我有关键字 values

例如:

BEGIN TRANSACTION T1
SELECT @@TRANCOUNT

INSERT INTO [APCore].[usr].[userBusinessArea]
           ([businessAreaID]
           ,[userID])
     VALUES
           (21, 368), 
           (21, 227419) ,
           (21, 99906), 
           (21, 140470)


SELECT [1]= @@TRANCOUNT
--COMMIT TRANSACTION T1
--ROLLBACK
SELECT [2]=@@TRANCOUNT
Run Code Online (Sandbox Code Playgroud)

问题是,在我运行插入之前,我想使用与 相同的逻辑values来找出这些记录中是否已经有任何记录在表中。

否则你可能会得到这样的结果:

在此处输入图片说明

我的做法是:

select top 10 * from
[APCore].[usr].[userBusinessArea]
where …
Run Code Online (Sandbox Code Playgroud)

sql-server query syntax insert select

2
推荐指数
1
解决办法
103
查看次数

如何根据前一天的值更新值?

我有一个 MySQL 数据库临时表,其中包含一堆针对系统 ID 和日期(它们组合构成主键)的仪表读数。

某些条目的仪表读数为 NULL,在这种情况下,它们需要更新以具有与前一天相同的仪表读数。

还有一个“差异”列,需要有当天读数和前一天读数之间的差异。

我知道如何使用代码更新表,我想知道是否有使用 SQL 的好方法。多个查询很好(我猜在计算差异之前至少需要更新 NULL 读数)。

这是一个带有假数据的示例架构,也在这个 sqlfiddle 中

CREATE TABLE Readings (`SystemID` INT, `ReadingDate` DATE, `Reading` INT NULL, `Diff` INT NULL, PRIMARY KEY(`SystemID`,`ReadingDate`));

INSERT INTO Readings VALUES 
(1, '2021-02-01', 24, NULL), 
(1, '2021-02-02', 26, NULL), 
(1, '2021-02-03', 23, NULL), 
(1, '2021-02-04', NULL, NULL), 
(1, '2021-02-05', NULL, NULL), 
(1, '2021-02-06', 28, NULL), 
(1, '2021-02-07', 21, NULL),
(2, '2021-02-01', 124, NULL), 
(2, '2021-02-02', 126, NULL), 
(2, '2021-02-03', 123, NULL), 
(2, '2021-02-04', NULL, …
Run Code Online (Sandbox Code Playgroud)

mysql query mysql-5.7

2
推荐指数
1
解决办法
125
查看次数

如何在 C# 中对 MSSQL 中的索引字段进行大型“in”查询?

在 mssql 中,如何有效地运行此查询:

select id from table where field in (gigantic list of ordered longs)
Run Code Online (Sandbox Code Playgroud)

表架构:

table:
{
  id primary key
  field long
} index findex (field)
Run Code Online (Sandbox Code Playgroud)

我认为这应该非常快(因为它基本上只是遍历两个有序的 long 列表)。有没有办法连续输入 ID?

我可以从控制台或使用 Linqpad/SSMS 来完成。

当前(慢)解决方案:构建许多长查询的控制台应用程序,每个查询都有 3k fieldId 参数。参数数量的限制是问题所在;如何解决它?

sql-server query

2
推荐指数
1
解决办法
91
查看次数

当列有数据时 NVL(<Column_name>,Sequence.nextval) 的奇怪行为?

我创建了一个这样的序列:

CREATE SEQUENCE seq_test2
  MINVALUE 0
  MAXVALUE 999999999999999999999999999
  START WITH 0
  INCREMENT BY 1;
Run Code Online (Sandbox Code Playgroud)

这两个查询都显示数字 0:

 select SEQ_TEST2.nextval from DUAL;   
 select SEQ_TEST2.currval from DUAL;
Run Code Online (Sandbox Code Playgroud)

我有一张桌子,你可以在这里看到:

create table STUDENT
(
  st_id      NUMBER,
  first_name VARCHAR2(150),
  last_name  VARCHAR2(150)
)
Run Code Online (Sandbox Code Playgroud)

执行下面的查询后,

select t.st_id , nvl(t.st_id , seq_test2.nextval) as seq
from STUDENT t
Run Code Online (Sandbox Code Playgroud)

当列中没有空值时st_id,我得到的结果是这样的:

    st_id    seq
   ---------------
      1       1
      2       2
      3       3
      4       4
      5       5
Run Code Online (Sandbox Code Playgroud)

当我插入列为 null 的行时st_id,执行上面的查询后,结果如下所示:

      st_id    seq
   ---------------
       1       1
       2       2
       3       3
       4       4 …
Run Code Online (Sandbox Code Playgroud)

oracle query oracle-11g-r2 plsql sequence

2
推荐指数
1
解决办法
372
查看次数

为什么 SERIALIZABLE 级别不会锁定 SQL Server 中其他会话的表

我想防止表中的删除、插入、更新和选择并发,因此我尝试SERIALIZABLE在转换之前使用该表,但这并没有为其他进程锁定该表!如何修复它?

我尝试过什么:

1-创建表_1

    --Create Sample Table
CREATE TABLE [dbo].[Table_1](
    [Number] [bigint] NOT NULL,
    [Price] [bigint] NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
    [Number] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[Table_1] ([Number], [Price]) VALUES (1, 1000)
GO
INSERT [dbo].[Table_1] ([Number], [Price]) VALUES (2, 3000)
GO
INSERT [dbo].[Table_1] ([Number], [Price]) VALUES (3, 8000)
GO
Run Code Online (Sandbox Code Playgroud)

2- 查询有延迟的会话一:

--SESSION 1
SET TRANSACTION ISOLATION LEVEL …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server query concurrency sql-server-2008-r2

2
推荐指数
1
解决办法
1188
查看次数

查询优化:在我的情况下哪个更好 - CURSOR 或基于集合的方法?

首先,我可以描述表的架构,但我的表本身大约是 80GB,所以我希望一些专家的眼睛可以看到可以执行的任何明显的优化。我正在进行一些基于活动的分析,以了解来自内部虚拟游戏环境的一组用户。

我有两个基表:

EventTable: Moderately big at 10GB
Activity_ID UserName ActivityStart ActivityEnd Badge

ActivityTable: Super big at 100GB
UserName ActivityTime Game1Points Game2Points
Run Code Online (Sandbox Code Playgroud)

简而言之,我正在尝试以下操作:

- For each activity in the EventTable:
   - Compute the median of Game1Points, Game2Points 
     for two cases: for all entries in the ActivityTable 
     that were present since 1 hour before the activity 
     and for all entries stored during the activity itself
Run Code Online (Sandbox Code Playgroud)

因此,我期待的决赛桌是这样的:

ResultTable:
Activity_ID Badge Game1_Before Game1_During Game2_Before Game2_During
Run Code Online (Sandbox Code Playgroud)

这显然看起来像是CURSORs的工作,所以我首先使用这种方法编写了我的查询。它正在运行,我可以看到进度,但在阅读了这么多恐怖故事之后,我决定用基于集合的方法重写我的 200 行基于 CURSOR 的方法。这非常适用于小桌子。但是,对于我这种大小的桌子,它似乎停滞不前(或者至少我不确定应该运行多长时间)。我运行Display …

sql-server-2008 sql-server query

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