小编And*_*y M的帖子

获取所有 CONVERT(datetime) 样式(格式)

我知道问这个问题有点愚蠢,但是否有 Transact-SQL 函数或任何返回所有CONVERT(datetime)样式(格式)的函数?类似的东西fnDateFormats将返回所有日期格式:

输出:

日期格式 | SQL代码
月/日/年 101

等等。

sql-server t-sql date-format

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

过滤外键

我有两个表:

  • 联系人(ID,类型);

  • 地址(ID)。

是否可以定义从地址(ID,'A')到联系人(ID,类型)的外键?

foreign-key sql-server subtypes

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

在使用动态仲裁的故障转移的 2 节点集群中,是否需要见证人?

我在 SQL Server 2016 Standard 上有一个 2 节点群集,并配置了动态仲裁的故障转移群集。

有件事让我很困惑:在这种情况下我们真的需要见证人吗?

由于我启用了动态仲裁,因此如果其中一个节点出现故障,我的集群也不会出现故障。

但有些人说,为了最佳实践,我们仍然需要配置一个见证人。所以我的问题是:见证人会有什么不同吗?

sql-server windows clustering failover sql-server-2016

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

使用两个不同的 where 条件更新查询

我想设置statusfalse所有行除一人外,应应设置为true。我怎样才能做到这一点?

这是我试过的查询:

UPDATE students set status = false where status = true and 
set status = true where _id = 1;
Run Code Online (Sandbox Code Playgroud)

postgresql update

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

索引优化脚本中的过滤模式

是否可以使用 Ola 的脚本进行索引优化并过滤掉特定的模式?

sql-server ola-hallengren index-maintenance

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

这个 SQL 语句有什么问题?

我无法在 MySQL 服务器上运行此语句:

DECLARE @tabl varchar(40)
SET @tabl = :uId;
SET @location = CONCAT('data_',@tabl);
SET @b = 'INSERT INTO' + @location + '(Id, uId , name , address, phone)
VALUES (:Id, :uId, :name, :address)';
Prepare stmt FROM @b;
Execute stmt;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

没有为参数 1 指定值 - SQLException

绑定将在另一个函数中完成。

我该如何解决?

mysql

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

从查询中检索特定结果

我有以下数据库表

Firstname  Varchar(40)
Surname    Varchar(40)
Department Binary
JobCode    Char(1)
Run Code Online (Sandbox Code Playgroud)

通常情况下,提取特定部门的记录是没有问题的。部门字段是一个由 7 部分组成的字段,每一位代表一个特定的部门,允许系统轻松显示人们在一个或多个部门工作的位置。假设 John Smith 的工作代码为 K,而 Freda Williams 的工作代码为 M。

同样,返回特定部门的记录非常简单。但是,如果 John Smith 临时晋升到同一部门,而不是更改记录,则会添加一个带有职位代码 F的额外记录。本质上,职位代码字母越低,等级越高。

因此,如果我们要检索 John Smith 的当前详细信息,很简单,选择姓名为 John Smith 的记录,按 Job Code Asc, Limit (1) 排序。

但是,提取一个部门的所有记录的 SQL 语句是什么,但要确保John Smith只出现一个记录,而且它是“F”记录?任何人都可以帮忙吗?我原以为子查询可能会对它进行排序,但不知道如何排序。

mysql select

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

选择层次结构中的所有子级

我有一个像这样的分层数据表:

BookGroupID  GroupName  ParentGroupID
-----------  ---------  -------------
0            Primary    0
1            abc        0
2            abd        0
3            abe        0
4            cbc        1
5            ceg        2
6            cjd        3
7            hjd        5
8            bjy        5
9            mfs        4
10           ikl        7
11           hjy        8
12           mnf        5
13           aws        10
14           qws        11
15           aqe        13
Run Code Online (Sandbox Code Playgroud)

我想在层次结构中选择一个特定的 BookGroupID 及其所有直接和间接子级。例如,对于 2 的 BookGroupID,输出应如下所示:

BookGroupID
-----------
2
5
7
8
10
11
12
13
14
15
Run Code Online (Sandbox Code Playgroud)

解释一下,第 5 行在输出中,因为它是第 2 行的直接孩子,第 7、8 和 …

sql-server-2005 sql-server recursive

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

字段日期部分的索引?

我有一个日期时间字段,但我经常查询日期部分,如下所示

select * from table where date(datetime_field)=curdate()
Run Code Online (Sandbox Code Playgroud)

此查询不能在 datetime_field 上使用索引!对代码或数据库进行最少更改的最佳解决方案是什么?

附言。如果有我还不知道的解决方案,升级 mysql 可能是一个选择,但 5.6 的更短期解决方案将不胜感激

mysql index mysql-5.6

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

空结果集和 Case When = 1

我很确定这是一个隐式转换,但我无法找到有关它的信息。

假设我有这个 SQL:

SELECT
CASE WHEN (SELECT 1 WHERE (1=1)) = 1 THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)

我的子查询返回一行,因此与 1 进行比较。这导致我的 CASE WHEN 产生 1 输出。

即使我将子查询设置为不返回如下示例所示的行,CASE 语句也会返回 0 结果:

SELECT
CASE WHEN (SELECT 1 WHERE (1=0)) = 1 THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)
  • SQL 解释器是否在“空集”到 0 或 1 之间进行转换?
  • 使用这种类型的比较让我感到不舒服。以我的拙见,最好像这样使用 EXISTS:

    SELECT
    CASE WHEN EXISTS(SELECT 1 WHERE (1=1)) THEN 1 ELSE 0 END
    
    Run Code Online (Sandbox Code Playgroud)

如果我不使用 EXISTS 有什么优点或缺点吗?

sql-server case

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