标签: sql-server-2014

在 SQL Server Management Studio 中转换为小写

我喜欢小写的 tsql,但很多时候我遇到的例子都是无缘无故大写的。

曾经有一个很好的键盘快捷键 ctrl-shift-l 可以解决这个问题,但由于某种原因它似乎在 SSMS 2014 中停止工作。

有谁知道他们改成啥了?

ssms sql-server-2014

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

sql server 需要用零填充列

我需要用零填充我的列,最多可达 7 个。有些已经是 7 位数字了,但任何不是 7 位数字的都需要前导 0。对此进行编码的最佳方法是什么?

sql sql-server sql-server-2014

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

检查字符串是否包含大写字符的函数?

我需要创建一个 SQL Server 函数来检查输入字符串是否包含任何大写字符。如果是,那么它应该返回“OK”。如果不是,则应返回“NOT OKAY”。

当执行以下语句时,它应该返回预期值,如下所示。

PRINT dbo.CheckStringOfUpperAlphaOK('abc') -- Expected: "NOT OK"
PRINT dbo.CheckStringOfUpperAlphaOK('ABC') -- Expected: "OK"
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的,但我不知道如上所述指定返回值。

CREATE FUNCTION CheckStringOfUpperAlphaOK (@String varchar(MAX))
RETURNS VARCHAR(6)
AS
BEGIN
Declare @KeepValues as varchar(50)
Set @KeepValues = '%[^ ][A-Z]%'

While PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) > 0
    Set @Temp = Stuff(@Temp, PatIndex(@KeepValues collate   
  Latin1_General_Bin, @Temp) + 1, 0, ' ')

RETURN @Temp
Run Code Online (Sandbox Code Playgroud)

结尾

sql-function sql-server-2014

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

无法创建外键,因为它与自身冲突

我正在尝试将外键添加到表中,但我不能,因为我收到此错误:

消息 547,级别 16,状态 0,第 1 行 ALTER TABLE 语句与 FOREIGN KEY 约束“FK_RDATA_COMBO_VALUES_ID_REFERENCES”冲突。冲突发生在数据库“MyDatabase”、表“dbo.EVA_REFERENCES”、列“ID_REFERENCES”中。

错误消息表明问题与此冲突,FK_RDATA_COMBO_VALUES_ID_REFERENCES但这是我尝试创建的 FK 的名称,它还不存在。

这是我的桌子:

CREATE TABLE [dbo].[RDATA_COMBO_VALUES](
    [ID_RDATA_COMBO] [int] IDENTITY(1,1) NOT NULL,
    [ID_REF_CDATA] [int] NOT NULL,
    [ID_MODULE_REC_ID] [int] NOT NULL,
    [VALUE] [nvarchar](max) NULL,
    [ID_REFERENCES] [int] NOT NULL,
 CONSTRAINT [PK_RDATA_COMBO_VALUES] PRIMARY KEY CLUSTERED 
(
    [ID_RDATA_COMBO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [dbo].[RDATA_COMBO_VALUES]  WITH CHECK ADD …
Run Code Online (Sandbox Code Playgroud)

sql-server foreign-keys sql-server-2014

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

SQL 查询计算具有相同值的行数

我有这个表数据:

在此输入图像描述

我想执行一个 SQL 查询,该查询将给出每个城市不同贷款申请的总数。

例如,我期望这个输出

City Wexford
Loans 1

City Waterford 1 
Loans 1

City Galway
Loans 3
Run Code Online (Sandbox Code Playgroud)

知道我需要执行什么样的查询才能获取每个城市的不同贷款计数吗?

sql t-sql sql-server sql-server-2012 sql-server-2014

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

如果情况如何编写多个然后情况作为单个案例

好的标题很难让我表达,所以可以编辑

我的问题是我可以用更短的方式写下面的查询

在所有情况下,何时相同

SQL server 2014

这里是查询

    update
   tblCrawlUrls 
set
   cl_LastCrawlDate = case 
      when Len(@cl_CrawlSource) > 2 then SYSUTCDATETIME() 
      else cl_LastCrawlDate  
   end ,
   cl_TotalCrawlTimes = case 
      when Len(@cl_CrawlSource) > 2 then @cl_TotalCrawlTimes 
      else cl_TotalCrawlTimes  
   end ,
   cl_Ignored_By_Containing_Word = case 
      when Len(@cl_CrawlSource) > 2 then @cl_Ignored_By_Containing_Word 
      else cl_Ignored_By_Containing_Word  
   end ,
   cl_PageProcessed = case 
      when Len(@cl_CrawlSource) > 2 then 0 
      else cl_PageProcessed 
   end ,
   cl_CertainlyNotProductPage = case 
      when Len(@cl_CrawlSource) > 2 then @cl_CertainlyNotProductPage 
      else cl_CertainlyNotProductPage 
   end ,
   cl_CrawlSource = case 
      when Len(@cl_CrawlSource) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server case sql-server-2014

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

SQL Server替换函数bug?

我在下面的陈述中遗漏了什么吗?

select replace('xAxAxAx', 'xAx', 'xBx')
Run Code Online (Sandbox Code Playgroud)

因为它导致:

xBxAxBx
Run Code Online (Sandbox Code Playgroud)

这是已知的错误还是我错过了一些基本的东西?

微软称这个replace功能:

将所有出现的指定字符串值替换为另一个字符串值.

这不是第二次xAx出现吗?

sql-server sql-server-2008 sql-server-2012 sql-server-2014

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

带过滤器的SQL max和min日期

以下帐户于2014年1月19日关闭,然后在2/27/2018重新开放,然后在3/26/2018再次关闭.如何在打开和关闭此帐户时编写要捕获的sql.closerestrictind ='C'是帐户关闭的时间.

我们正在数据仓库中工作,每天都会加载数据以捕获所有历史记录.

对于acct 1234,它应该是这样的:

closed on 1/19/2018
re-opened on 2/27/2018
closed on 3/26/2018
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

谢谢!

sql t-sql sql-server sql-server-2014

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

由于子选择导致的慢查询

我有几个SQL Server 2014查询,它们回退一个数据集,我们需要计算相关但不同的标准以及该数据.我们使用子查询执行此操作,但这会大大减慢它的速度.到目前为止,我们在数据库中获得更多数据值得信赖.这是查询:

SELECT 
    T.*, 
    ISNULL((SELECT COUNT(1)
            FROM EventRegTix ERT, EventReg ER
            WHERE ER.EventRegID = ERT.EventRegID 
              AND ERT.TicketID = T.TicketID
              AND ER.OrderCompleteFlag = 1), 0) AS NumTicketsSold
FROM 
    Tickets T 
WHERE 
    T.EventID = 12345
    AND T.DeleteFlag = 0 
    AND T.ActiveFlag = 1
ORDER BY 
    T.OrderNumber ASC
Run Code Online (Sandbox Code Playgroud)

我很确定它主要是由于在子查询之外的关系到Tickets表.如果我将其更改T.TicketID为实际票证#(例如999),则查询速度会快很多.

我试图将这些查询合并为一个,但由于子查询中还有其他字段,我无法让它正常工作.我在玩弄

COUNT(1) OVER (PARTITION BY T.TicketID) AS NumTicketsSold
Run Code Online (Sandbox Code Playgroud)

但也无法解决这个问题.

任何帮助将非常感激!

sql t-sql sql-server sql-server-2014

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

选择最大列数

我正在编写一个简单的查询,以获取具有MAX ADDRESS_SEQ_NUM的VENDOR_ID,以便获得以下输出:

VENDOR_ID     ADDRESS_SEQ_NUM
76109A        81
Run Code Online (Sandbox Code Playgroud)

问题是,当我编写以下SQL时,我要取回每个VENDOR_ID,它是自己的最大ADDRESS_SEQ_NUM,而我只想要整个表中的VENDOR_ID和最大ADDRESS_SEQ_NUM。

SELECT VENDOR_ID, MAX(ADDRESS_SEQ_NUM)
FROM PS_VNDR_ADDR_SCROL
GROUP BY VENDOR_ID
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2014

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