小编Pau*_*ite的帖子

Oracle联合默认排序很奇怪

如您所知,union删除重复的行。我认为它从后者中删除,但事实并非如此。

我发现如果没有order by子句,Oracle 会按第一列对合并的数据集进行排序并删除重复项。

select 4,5,6 from dual
union 
select 1,2,3 from dual
union 
select 4,5,6 from dual
Run Code Online (Sandbox Code Playgroud)

结果:

1   2   3
4   5   6
Run Code Online (Sandbox Code Playgroud)

而我期望:

4   5   6
1   2   3
Run Code Online (Sandbox Code Playgroud)

我在这方面失败了很多次,并使问题变得简单,就像上面的例子一样。

如何在没有 的情况下保持联合序列order by

在我的真实案例中,第一个select是完全匹配(=)结果,第二个是部分匹配(like)结果。

例如,如果我搜索罗马人

全场比赛结果:罗马,部分比赛结果:香气

当然,完整的比赛结果应该是第一位的。正如我所说,它似乎order byunion结果的第一列。

但是,如您所见:

select 'roma' from dual -- result comes out anyway..
union select 'aroma' from dual; …
Run Code Online (Sandbox Code Playgroud)

oracle order-by union

0
推荐指数
2
解决办法
5672
查看次数

更新分组记录

我有以下查询返回重复值:

  SELECT 
    [t].[Field1], [t].[Field2], COUNT([t].[Field2]) 
  FROM [dbo].[Table1] AS [t]
  WHERE [t].[Field2] <> ''
  GROUP BY [t].[Field1], [t].[Field2]
  HAVING COUNT([t].[Field2]) > 1
Run Code Online (Sandbox Code Playgroud)

鉴于该声明,我想编写更新声明以Field2在这些条件下清除。我会怎么写这个?

sql-server duplication update

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

SQL Server:查看名称

我来自 Oracle 背景,遇到了创建 SQL Server 视图的代码,这是我以前从未见过的。

我们有一个名为 viewA 的视图(例如)

在生成视图的脚本中,我看到了这段代码

select columnA, columnB, columnC
from tableA as vw_tableB
Run Code Online (Sandbox Code Playgroud)

我的问题是,视图到底叫什么?

viewA还是vw_tableB

我的另一个问题是这背后的基本原理是什么?

sql-server-2008 sql-server view

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

T-SQL 或 PowerShell 将超过 2 天的 bak 文件移动到另一个位置

我使用的是 SQL Server 2005。我的一个备份驱动器已满,所以我想移动 2 天之前的备份。

我正在考虑创建一个每天运行的作业,但卡在了移动.bak文件的脚本上。

您知道从驱动器 A 移动文件并将其移动到共享位置的脚本吗?我的.bak文件没有时间戳。

sql-server-2005 sql-server powershell t-sql disk-space

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

缩小数据库有什么缺点吗?

我的生产服务器的数据库意外增长,我几乎要创建一个作业来缩小每月运行一次的数据库。这是个好主意吗?

备份失败并且记录了大量事务的失败时间,这使数据库迅速增长。

我正在使用 SQL Server 2008 R2。

sql-server shrink sql-server-2008-r2

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

按日期计数的条目给出了错误的结果

我通过以下查询得到了一些奇怪的结果:

SELECT count(id)
FROM `asins`
WHERE `StockUpdated` >= '2016-12-30'
and  `StockUpdated` <= '2016-12-31'
Run Code Online (Sandbox Code Playgroud)

结果是:24446

SELECT count(id)
FROM `asins`
WHERE `StockUpdated` >= '2016-12-30'
Run Code Online (Sandbox Code Playgroud)

结果是:33098

SELECT count(id)
FROM `asins`
WHERE `StockUpdated` >= '2016-12-30'
and `StockUpdated` <= '2017-1-1'
Run Code Online (Sandbox Code Playgroud)

结果是:33098

SELECT count(id)
FROM `asins`
WHERE `StockUpdated` >= '2017-1-1'
Run Code Online (Sandbox Code Playgroud)

结果是:0

我的问题是为什么下面的查询不完美?

SELECT count(id)
FROM `asins`
WHERE `StockUpdated` >= '2016-12-30'
and  `StockUpdated` <= '2016-12-31'
Run Code Online (Sandbox Code Playgroud)

mysql count datetime

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

只为一个数据库创建包含 SQL 语句的日志文件

我有两个 Postgres 数据库。我可以在日志文件中只为其中之一写入 SQL 语句吗?

postgresql configuration

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

唯一的非聚集索引对锁有帮助吗?

我想知道当涉及到 KEY 锁时,SQL Server 对于唯一非聚集索引和非唯一聚集索引的行为是否有所不同。

sql-server locking nonclustered-index unique-constraint

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

停止活动节点上的 SQL 服务

我有一个主动的被动 SQL 集群。当我从 SQL Server 配置管理器停止活动节点上的 SQL 服务时,SQL 群集不会进行故障转移,而是显示为部分联机。

如果 SQL 服务从 Configuration Manager 停止,它不会故障转移到另一个节点?

我必须为我的客户准备测试用例,所以我迫切需要清除这个疑问。

sql-server clustering failover

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

与 NULL 值连接(不应替换 NULL)

经过一段时间寻找答案后,我收到了很多问题,说要使用coalesceconcat()等,但我需要的是:

桌子:

create table nulos ( nome varchar(max))
alter table nulos add cidade varchar(max)
Run Code Online (Sandbox Code Playgroud)

价值观:

insert into nulos values ( 'rafael','são paulo'),('juliana',null)
Run Code Online (Sandbox Code Playgroud)

我需要将这个表中的值连接到一个插入中,如下所示:

 select 'insert into nulos (nome,cidade) values ('+nome+','+cidade+')'
from nulos
Run Code Online (Sandbox Code Playgroud)

和选择的结果:

insert into nulos (nome,cidade) values (rafael,são paulo)
NULL
Run Code Online (Sandbox Code Playgroud)

如何在此串联中使用 NULL 值?每个答案都说用''or替换空值'_',但我需要的是:

insert into nulos (nome,cidade) values (rafael,são paulo)

insert into nulos (nome,cidade) values (Juliana,NULL)
Run Code Online (Sandbox Code Playgroud)

SET CONCAT_NULL_YIELDS_NULL on 不是一个选项,因为它只是删除 NULL 值,我需要插入它。

null sql-server sql-server-2008-r2 string-manipulation

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