我知道问这个问题有点愚蠢,但是否有 Transact-SQL 函数或任何返回所有CONVERT(datetime)样式(格式)的函数?类似的东西fnDateFormats将返回所有日期格式:
输出:
日期格式 | SQL代码 月/日/年 101
等等。
我有两个表:
联系人(ID,类型);
地址(ID)。
是否可以定义从地址(ID,'A')到联系人(ID,类型)的外键?
我在 SQL Server 2016 Standard 上有一个 2 节点群集,并配置了动态仲裁的故障转移群集。
有件事让我很困惑:在这种情况下我们真的需要见证人吗?
由于我启用了动态仲裁,因此如果其中一个节点出现故障,我的集群也不会出现故障。
但有些人说,为了最佳实践,我们仍然需要配置一个见证人。所以我的问题是:见证人会有什么不同吗?
我想设置status到false所有行除一人外,应应设置为true。我怎样才能做到这一点?
这是我试过的查询:
UPDATE students set status = false where status = true and
set status = true where _id = 1;
Run Code Online (Sandbox Code Playgroud) 是否可以使用 Ola 的脚本进行索引优化并过滤掉特定的模式?
我无法在 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
绑定将在另一个函数中完成。
我该如何解决?
我有以下数据库表
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”记录?任何人都可以帮忙吗?我原以为子查询可能会对它进行排序,但不知道如何排序。
我有一个像这样的分层数据表:
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 和 …
我有一个日期时间字段,但我经常查询日期部分,如下所示
select * from table where date(datetime_field)=curdate()
Run Code Online (Sandbox Code Playgroud)
此查询不能在 datetime_field 上使用索引!对代码或数据库进行最少更改的最佳解决方案是什么?
附言。如果有我还不知道的解决方案,升级 mysql 可能是一个选择,但 5.6 的更短期解决方案将不胜感激
我很确定这是一个隐式转换,但我无法找到有关它的信息。
假设我有这个 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)
使用这种类型的比较让我感到不舒服。以我的拙见,最好像这样使用 EXISTS:
SELECT
CASE WHEN EXISTS(SELECT 1 WHERE (1=1)) THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)如果我不使用 EXISTS 有什么优点或缺点吗?
sql-server ×6
mysql ×3
case ×1
clustering ×1
date-format ×1
failover ×1
foreign-key ×1
index ×1
mysql-5.6 ×1
postgresql ×1
recursive ×1
select ×1
subtypes ×1
t-sql ×1
update ×1
windows ×1