标签: sql-server-2019

合并与删除并插入选择

我正在看MERGE声明,我不明白它的意思。

如果我错了,请纠正我,但基本上,它使目标表成为源表的相同副本。

那么从 1 个表中删除记录并简单地 INSERT INTO ... 从另一个表中选择所有行不是更容易吗?

我在 MERGE 的效率中缺少什么吗?

t-sql sql-server merge sql-server-2019

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

部署 Yaml 文件

我正在使用本文作为指南在 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 文件: …

deployment yaml kubernetes minikube sql-server-2019

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

选择列在一行中包含三个大写字母的位置

我正在使用 SQL Server 2019 并尝试调试ProperCase将字符串转换为正确大小写的函数。

我有一个表,我使用我的函数创建了它,其中包含所有varchar列,其中一个名为Surname.

我想选择一行中Surname包含三个或更多大写字母的行。

我搜索这个网站和谷歌等,并有大量的例子查找那里有任何大写字母或没有在现场大写字母,但是这是一个有点比这更微妙。

该列可以包含任意总数的大写或小写字母,但我只想选择包含三个或更多大写字母的行。

正则表达式可以在这里工作吗?

sql sql-server sql-server-2019

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

在 T-SQL 中获取不同的逗号分隔字符串

我难住了。使用 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

SQL 不同的逗号分隔列表

在 STRING_AGG 中产生 DISTINCT 值

sql t-sql sql-server sql-server-2019

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

where 子句中的日期返回 0 行

我试图按如下方式获取数据, 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

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

为什么我的函数返回 NULL,而同一个查询却给出结果?

当我运行这个查询时,我得到了预期的结果,即一个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 sql-server sql-function sql-server-2019

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

使用另一个表中具有相同名称和数据类型的列更新表中的所有列

这是针对 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 sql-server sql-server-2019

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

将 dd/mm/yyyy hh:mm:ss am/pm 转换为 yyyy/mm/dd hh:mm:ss

我需要在 SQL Server 2019 中将“13/10/2021 09:38:20 PM”转换为“2021/10/13 21:38:20”。我在互联网上查找了相同的内容,但找不到一个办法。请帮我。

sql t-sql sql-server datetime sql-server-2019

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