小编pet*_*erh的帖子

如何在大表的有序列中获取最后一个非空值?

我有以下输入:

 id | value 
----+-------
  1 |   136
  2 |  NULL
  3 |   650
  4 |  NULL
  5 |  NULL
  6 |  NULL
  7 |   954
  8 |  NULL
  9 |   104
 10 |  NULL
Run Code Online (Sandbox Code Playgroud)

我希望得到以下结果:

 id | value 
----+-------
  1 |   136
  2 |   136
  3 |   650
  4 |   650
  5 |   650
  6 |   650
  7 |   954
  8 |   954
  9 |   104
 10 |   104
Run Code Online (Sandbox Code Playgroud)

简单的解决方案是用<关系连接表,然后选择 a 中的MAXGROUP BY: …

null sql-server t-sql window-functions running-totals

14
推荐指数
3
解决办法
7268
查看次数

未成功授予权限

我目前正在尝试使用以下方法定义一个新用户:

mysql> GRANT ALL PRIVILEGES ON simple_cms_development.* TO 'br'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

但是,它不成功并输出:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“IDENTIFIED BY 'password'”附近使用的正确语法

我正在运行 MySQL 8.0.11。

mysql permissions

12
推荐指数
1
解决办法
3万
查看次数

如果数据库不喜欢,最好的表名而不是“用户”

是的,我知道,可以引用表的名称,但有时不正确。

如果别无选择,我将这个表命名为“用户”,尽管这个语义上不需要的复数会使事情有点不一致。

存在哪些替代解决方案?

terminology

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

将 Oracle 数据库转储到文本 SQL 脚本中

我在想什么mysqldumppg_dump正在做什么。因此,他们将活动数据库转储到包含 SQL 查询的文本文件中,这些 SQL 查询可重现整个数据库。在 MySQL 和 PostgreSQL 中,这是正常的数据库转储格式。

它存在于 Oracle 上吗?怎么做到呢?

如果不是标准的 Oracle 东西,那绝对不是问题。我需要一个解决问题的方法。导出单个表是足够的,我问了整整DB的转储。

它是一个大型项目(具有数百万行 DB)的简化开发人员环境,但仍有数百个表和非常复杂的结构。而且,我想快点玩。当我在玩它时,我还需要能够对其执行棘手的修改。在二进制转储上我不能这样做,在文本上我可以。

oracle export dump

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

Microsoft SQL Server 创建内联函数

我对 SQL 完全陌生,我必须编写一个用户定义的函数 (UDF) 来计算给定时间范围内学生的 GPA。这些输入StudentId intClassStartDateStart datetime以及ClassStartDateEnd datetime。其中输出应该是学生在ClassStartDateStart 和之间参加的所有课程的 GPA ClassStartDateEnd。此外,提供调用此新函数的脚本,将您选择的参数值传递给它。我尝试创建一个代码,但不知道从哪里开始。这是我到目前为止所拥有的:

USE [Master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION GPAofStudents 
  (StudentID int, 
   ClassStartDateStart datetime, 
   ClassStartDateEnd datetime)
  RETURNS decimal(3,2) 
  AS
BEGIN 
DECLARE AvgGPA decimal(5,2); 
SET AvgGPA = (SELECT AVG(Class_GPA)
FROM Students_Classes 
  WHERE Student_ID = StudentID 
    AND Start_Date > ClassStartDateStart 
    AND Start_Date <= ClassStartDateEnd 
    AND Class_GPA > 0; 
    RETURN AvgGPA; 
END;
Run Code Online (Sandbox Code Playgroud)

我给学生的桌子是这样的:

CREATE TABLE [dbo].[Students_Classes](
    [Student_Class_ID] [int] …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql functions

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

如何完全“重置”Oracle 实例?

我想从 Oracle 实例中删除所有实体。我想删除所有表、用户、索引等,就像它是一个新创建的实例一样。结果应该看起来,或者至少从客户端的角度来看非常接近,好像我已经完全删除了实例,然后使用相同的设置重新安装了实例。

通过完全擦除/重新安装来执行此操作很慢,并且不容易自动化。我正在寻找更好的选择,但如果没有,这是一个可能的解决方案。

删除模式是不够的,因为一些实体仍然保留在原地(例如,用户)。

有没有一种简单的方法可以放下所有东西,以更快的速度达到初始的干净和空状态?

oracle

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

在 Oracle 中创建布尔列时的最佳实践是什么?

我再次面临一个严重的问题,即 Oracle 根本没有布尔列类型。我需要使用char(1), 或smallint, 或其他一些。

最佳实践是什么,如何在 Oracle 中模拟布尔值?

(空间消耗现在不重要 - 但与 java/hibernate 线的良好合作很重要)。

oracle datatypes

4
推荐指数
1
解决办法
3万
查看次数

Microsoft 建议在时间戳上使用 Rowversion,但我在 sql server 2008 R2 中找不到“rowversion”数据类型

微软在这里提到我们应该使用 rowversion 数据类型而不是 Timestamps。现在在我的 SQL Server 2008 R2 中,我想创建一个具有 Rowversion 数据类型的列。但是在我的 SQL Server 2008 R2 Management Studio 中,我找不到这样的数据类型:

在此处输入图片说明

此外,当我尝试使用此语句更改名为时间戳的现有列时,该列的类型为时间戳:

ALTER TABLE [SkillManagement].[dbo].[Customer]
ALTER COLUMN timestamp rowversion 
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Msg 4927, Level 16, State 1, Line 1
Cannot alter column 'timestamp' to be data type timestamp
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议吗?

编辑

在此处输入图片说明

sql-server-2008 sql-server sql-server-2008-r2

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

有没有办法自动按主键对 PostgreSQL 表进行排序?

我想转储一个表的全部内容,按主键排序。直觉上,我想做一个

SELECT * FROM %table_name% ORDER BY %primary_key_of(table_name)%;
Run Code Online (Sandbox Code Playgroud)

这将由外部工具运行,知道表的列表,但不知道它们的主键。

如果没有更好的选择,我们可以假设所有的主键都是单列的。

我使用的是 PostgreSQL-9.5,但可以升级。

postgresql primary-key

4
推荐指数
2
解决办法
5919
查看次数

RAID 存储技术已过时?

我正在设计新 SQL Server 安装的要求。我一直在研究磁盘存储,一切似乎都指向使用 RAID。

但是,我发现了这篇文章,它表明 RAID 在今天不再适用。

任何人都可以指出我可以在哪里了解 SQL Server 的最新磁盘存储的方向。

storage disk-structures windows-server

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

Microsoft 认证 - 70-764 管理 SQL 数据库基础结构

首先,如果这不一定是发布此类问题的最佳地点,我深表歉意。

我目前正在准备我的 70-764 考试。我购买了以下书:

70-764

我有几个关于这本书及其资源的问题:

  1. 以前,我购买了其他 Microsoft 认证书籍,并且通常会随印刷书籍一起获得 PDF 版本。现在不是这样了吗?我是否缺少磁盘或其他东西?

  2. 这本书有许多支持资源的 URL,但是,这些 URL 似乎不再有效。例如,在本书的早期,有一个 URL 给出了随书附送的有用链接列表,我在网上根本找不到这些链接。

  3. 实践测试也曾经与本书一起提供,但现在似乎不再如此。这是故意的吗?或者我只是在这里遗漏了什么?

非常感谢您提供任何帮助。

sql-server learning sql-server-2016

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

如何检查我的用户是否具有 CREATE SCHEMA 权限?

我在可以创建表和存储过程的数据库中有一个用户帐户。

我想确认此用户帐户是否可以创建模式 -无需先尝试。(我是金融的一部分,而不是 IT。)

如果我可以创建模式,那么我会请求 IT 许可继续这样做。

如果我不能,那么我将继续等待 IT 在我前段时间提出的服务台请求上执行此操作(叹气)。

有没有我可以在 SSMS 中运行的命令,它可以在不实际创建新模式的情况下告诉我这一点?

我还截取了该用户权限的几个屏幕截图 - 也许他们会有答案?

数据库权限 1

数据库权限 2

编辑:

运行下面 SQLServing 建议的 SQL 后,我得到了这个结果:

UserName    is_disabled principal_type_desc class_desc  object_name permission_name permission_state_desc
DWReports   0   SQL_USER    DATABASE    NULL    CONNECT GRANT
DWReports   0   SQL_USER    OBJECT_OR_COLUMN    GetSystemSQLAgentJobList    EXECUTE GRANT
Run Code Online (Sandbox Code Playgroud)

sql-server ssms sql-server-2012

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