我正在看MERGE声明,我不明白它的意思。
如果我错了,请纠正我,但基本上,它使目标表成为源表的相同副本。
那么从 1 个表中删除记录并简单地 INSERT INTO ... 从另一个表中选择所有行不是更容易吗?
我在 MERGE 的效率中缺少什么吗?
我正在使用本文作为指南在 minkube 上学习 SQL Server BDC 。我尝试通过运行代码来部署以下 yaml 文件:kubectl apply -f deployment.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mssql-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: mssql
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mssql
image: microsoft/mssql-server-linux
ports:
- containerPort: 1433
securityContext:
privileged: true
env:
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql
key: SA_PASSWORD
volumeMounts:
- name: mssqldb
mountPath: /var/opt/mssql
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: pvc0001
Run Code Online (Sandbox Code Playgroud)
由于 v1beta1 APIVersion 而出错。我通过运行转换了这个 yaml 文件: …
我正在使用 SQL Server 2019 并尝试调试ProperCase将字符串转换为正确大小写的函数。
我有一个表,我使用我的函数创建了它,其中包含所有varchar列,其中一个名为Surname.
我想选择一行中Surname包含三个或更多大写字母的行。
我搜索这个网站和谷歌等,并有大量的例子查找那里有任何大写字母或没有在现场大写字母,但是这是一个有点比这更微妙。
该列可以包含任意总数的大写或小写字母,但我只想选择包含三个或更多大写字母的行。
正则表达式可以在这里工作吗?
我难住了。使用 SQL Server 2019。
SELECT * FROM (VALUES
(1, 'Alice', 'Alice'),
(2, 'Robert', 'Robert'),
(3, 'Robert', 'Bob'),
(4, 'Richard', 'Rich'),
(5, 'Richard', 'Rick'),
(6, 'Richard', 'Dick')
) tmp (ID, RealName, NickName)
Run Code Online (Sandbox Code Playgroud)
鉴于此,我想制作一个表格,显示每个用户及其可能的昵称。我希望结果是:
| 姓名 | 又名 |
|---|---|
| 爱丽丝 | 空值 |
| 罗伯特 | 鲍勃 |
| 理查德 | 丰富的,瑞克,迪克 |
我研究了关于 SO 的其他类似问题,但并没有完全解决从 AKA 列中省略 Name 的问题。TIA
我试图按如下方式获取数据,
WHERE DateCommande = '2018-09-05'
但它在我的计算机上不起作用。
SELECT *
FROM dbo.Commande;
Run Code Online (Sandbox Code Playgroud)
返回行,包括在列中显示2018-09-05为日期时间值的行datetime。
但是,在我的计算机上的 SSMS 上,如果我添加一个WHERE子句,查询将返回 0 行:
SELECT *
FROM dbo.Commande
WHERE DateTimeColumn = '2018-09-05 00:00:00.000';
Run Code Online (Sandbox Code Playgroud) sql t-sql sql-server sql-server-2019 sql-server-2019-express
当我运行这个查询时,我得到了预期的结果,即一个UNIQUEIDENTIFIER:
select top 1 ec.NewValue from Events e
join EventChanges ec on e.Id = ec.EventId
where e.EntityChangedId = 'aceaea4b-e4d1-45ea-84f7-8ecda1a0b20e'
and ec.FieldChanged = 'Company.CallFrequencyId'
and e.EventDate <= '2022-07-11 15:32:00.0000000 +00:00'
order by e.EventDate desc
Run Code Online (Sandbox Code Playgroud)
但是,当我创建一个包含完全相同的查询的函数并调用它时,我得到NULL:
CREATE FUNCTION [dbo].[GetCallFrequencyIdAtDate](@companyId VARCHAR, @date DATETIME2)
RETURNS VARCHAR
AS BEGIN
RETURN (
select top 1 ec.NewValue from Events e
join EventChanges ec on e.Id = ec.EventId
where e.EntityChangedId = @companyId
and ec.FieldChanged = 'Company.CallFrequencyId'
and e.EventDate <= @date
order by e.EventDate desc …Run Code Online (Sandbox Code Playgroud) 这是针对 SQL Server 2019 的。我的 TableA 包含大约 100 列,并且想要更新 TableB,它具有完全相同的列名称和完全相同的数据类型。
使用内置的生成插入脚本可以轻松插入。但是,无法找到使用生成的更新脚本来执行此操作的简单方法。TableA 有一个名为modifiedOn 的列,我用它来过滤数据。
我的脚本类似于
UPDATE TableB
SET Column1 = Column1,
Column2 = Column2,
.... Upto
Column100 = Column100
WHERE TableA.id = TableB.id
AND TableA.ModifiedOn > DateAdd(day,-1,GETDATE())
Run Code Online (Sandbox Code Playgroud) 我需要在 SQL Server 2019 中将“13/10/2021 09:38:20 PM”转换为“2021/10/13 21:38:20”。我在互联网上查找了相同的内容,但找不到一个办法。请帮我。
sql-server ×7
sql ×6
t-sql ×4
datetime ×1
deployment ×1
kubernetes ×1
merge ×1
minikube ×1
sql-function ×1
yaml ×1