小编Tab*_*man的帖子

使用T-SQL从日期和年份创建日期

我试图将日期与单个部分(如12,1,2007)转换为SQL Server 2005中的日期时间.我尝试了以下内容:

CAST(DATEPART(year, DATE)+'-'+ DATEPART(month, DATE) +'-'+ DATEPART(day, DATE) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误的日期.将三个日期值转换为正确的日期时间格式的正确方法是什么.

sql t-sql sql-server sql-server-2005

256
推荐指数
9
解决办法
38万
查看次数

如何在SQL中获取每个组的最后一条记录

我面临着一个相当有趣的问题.我有一个具有以下结构的表:

CREATE TABLE [dbo].[Event]
(
    Id int IDENTITY(1,1) NOT NULL,
    ApplicationId nvarchar(32) NOT NULL,
    Name nvarchar(128) NOT NULL,
    Description nvarchar(256) NULL,
    Date nvarchar(16) NOT NULL,
    Time nvarchar(16) NOT NULL,
    EventType nvarchar(16) NOT NULL,
    CONSTRAINT Event_PK PRIMARY KEY CLUSTERED ( Id ) WITH (
        PAD_INDEX = OFF, 
        STATISTICS_NORECOMPUTE = OFF, 
        IGNORE_DUP_KEY = OFF, 
        ALLOW_ROW_LOCKS = ON, 
        ALLOW_PAGE_LOCKS  = ON
    )
)
Run Code Online (Sandbox Code Playgroud)

所以问题是我必须在网格中显示这些数据.有两个要求.第一个是显示所有事件,而不管是什么应用程序抛出它们.这很简单 - 选择语句可以非常轻松地完成工作.

第二个要求是能够按事件分组事件Application.换句话说,以一种方式显示所有事件,如果ApplicationId重复多次,则只获取每个应用程序的最后一个条目.此查询/视图中不再需要此时事件(Id)的主键.

您可能还注意到事件日期和时间是字符串格式.这没关系,因为它们遵循标准的日期时间格式:mm/dd/yyyy和hh:mm:ss.我可以按如下方式提取:

Convert( DateTime, (Date + ' ' +  Time)) AS 'TimeStamp'
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我在其余列上使用AGGREGATE函数,我不知道它们会如何表现: …

t-sql sql-server-2005 sql-server-2008 greatest-n-per-group

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

将行转移到没有聚合的列

试图找出如何编写动态数据透视sql语句.哪里TEST_NAME可以有多达12个不同的值(因此有12列).一些VAL将是Int,Decimal或Varchar数据类型.我见过的大多数例子都包括一些聚合.我期待一个直接价值的支点.

Source Table 

????????????????????????????
? TEST_NAME ? SBNO ?  VAL  ?
????????????????????????????
? Test1     ?    1 ? 0.304 ?
? Test1     ?    2 ? 0.31  ?
? Test1     ?    3 ? 0.306 ?
? Test2     ?    1 ? 2.3   ?
? Test2     ?    2 ? 2.5   ?
? Test2     ?    3 ? 2.4   ?
? Test3     ?    1 ? PASS  ?
? Test3     ?    2 ? PASS  ?
????????????????????????????


Desired Output 
????????????????????????????
? SBNO Test1 Test2   Test3 ? …
Run Code Online (Sandbox Code Playgroud)

sql pivot

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

从Node.js连接到远程Microsoft SQL服务器

我想知道是否有人知道从Node.js连接到Microsoft SQL数据库的方法.我知道MySQL驱动程序,但我需要从MS SQL数据库中获取数据,而是直接从Node.js中提取数据而不是破解某种类型的PHP脚本.

node.js node-mssql

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

之前Nth匹配的SQL文本?

使用SQL我想在列中的第3个正斜杠之前返回所有文本

所以

/one/two/three/whatever/testing
Run Code Online (Sandbox Code Playgroud)

会回来:

/one/two/three
Run Code Online (Sandbox Code Playgroud)

在SQL中执行此操作的任何快速而脏的方法(特别是MS SQL 2005+下的MS T-SQL)?

sql sql-server substring pattern-matching

7
推荐指数
2
解决办法
7118
查看次数

如何筛选ROW_NUMBER()

我试图从数据集中选择不同的NAME,但也返回其他列.我有它在一定程度上工作,但只是无法弄清楚如何把它结合在一起.

我怀疑我需要一个WITH x(或者其他东西,但我不确定

这是CODE和它返回的数据的图像.从这里我想只显示WHERE RN=1在图像中以红色圈出的 显示

Select
    row_number() over (partition by tagname order by adddate) as RN,
    tagname,
    RIGHT(v_AlarmsWithTagname.TagName,charindex('.',REVERSE(v_AlarmsWithTagname.TagName))-1) as SCADA_tag, 
    convert(varchar(12) , adddate , 101) as AddDate,
    left(tagname,CHARINDEX('.',tagname)-1) as 'Table',
    [CC_NOTE_LOG].dbo.SCADA_DB.groupid as 'Group',
    [CC_NOTE_LOG].dbo.SCADA_DB.dataset as 'Dataset', 
    [CC_NOTE_LOG].dbo.SCADA_DB.Description as 'Description'
FROM "Buckeye KB".dbo.v_AlarmsWithTagname
join 
    [CC_NOTE_LOG].dbo.SCADA_DB
on 
    RIGHT(v_AlarmsWithTagname.TagName,charindex('.',REVERSE(v_AlarmsWithTagname.TagName))-1)=[CC_NOTE_LOG].dbo.SCADA_DB.SCADA_SR_TAG
where
    [CC_NOTE_LOG].dbo.SCADA_DB.groupid<>'test' and
    [CC_NOTE_LOG].dbo.SCADA_DB.groupid not like 'Keep%' and
    [CC_NOTE_LOG].dbo.SCADA_DB.groupid not like 'delete%' and
    Tagname not like '%.ES_%' and
    Tagname not like '%.OPC_%'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

sql-server row-number partition

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

空字符串导致"在命令行参数中检测到错误,请确保正确设置所有参数"

在SQL 2016 Server上,我有一个调用SSIS包的作业.该包位于SSISDB中的一个项目中并具有参数.其中一个参数是字符串类型,默认为空.

我使用此参数的空值运行作业,并成功运行.

然后我打开了作业属性,转到调用该包的步骤并进入配置并为该参数赋值.

我再次运行该作业并成功运行,参数值对结果产生了预期的影响.

现在我想修改作业并将参数设置回空字符串.重复上面的操作,我打开配置并完全删除参数的值.

在此输入图像描述

当我然后尝试保存Job Step属性时,我会在主题行中显示一条错误对话框.

如果我为该参数添加了非空值,则可以保存作业步骤.

当我第一次创建作业时,我能够使用空字符串保存该值.只是当我将值更改为非空字符串,运行作业,然后尝试将其更改为空,我遇到此错误.

我知道我可以运行alter job脚本或删除并重新创建作业步骤来解决这个问题.我不知道如何解决这个问题.

我的问题是:这是一个已知的错误,还是有一个技巧,使用GUI将执行参数的值从字符串值更改为空字符串?

你们中的任何人都可以这样做,或者我的问题可以重现吗?到目前为止,我在搜索中找不到任何内容.

编辑:按照Aaron的评论,我尝试输入一对单引号作为参数的值.工作接受并成功保存.但是当我运行这个工作时,这对单引号实际上被用作参数的值,而不是空字符串.

sql-server ssis etl sql-agent-job sql-server-2016

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

引用外键并为父表中的列添加检查约束

如何在表中添加BusinessCategories相关列IsBusinessCategory值是否为“真”的检查Categories.ID

CREATE TABLE [dbo].[Categories](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [ParentID] [int] NULL,
    [DisplayNameHe] [nvarchar](400) NOT NULL,
    [DisplayNameEn] [nvarchar](400) NOT NULL,
    [DisplayNameEs] [nvarchar](400) NOT NULL,
    [CreateDate] [datetime] NOT NULL,
    [Status] [bit] NOT NULL,
    [IsBusinessCategory] [bit] NULL
)



CREATE TABLE [dbo].[BusinessCategories](
    [ID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
    [BusinessCategoryID] [INT] NOT NULL REFERENCES Categories(ID) -- Need to check that is 
     businessCategory ==1
    [BusinessID] [INT] NOT NULL REFERENCES Business(ID)
)
Run Code Online (Sandbox Code Playgroud)

目标是能够仅将具有IsBusinessCategory == true 的Categories表中的值插入到列 …

sql sql-server

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

Round Trip Time Http on non persistent,persistent,persistent with pipelining

网络是我硕士学位的最后一门课程.我确实有一个关于如何计算非持久性,持久性和持久性与流水线的http的往返时间的问题.

花了无数个小时阅读有关问题,从其他unis下载笔记,甚至搜索youtube视频我无法解决这个问题.

为了理解如何计算RTT,我们只是说客户端要求包含10个图像的HTML页面.[让我们将传播延迟保持为零.]

请遵循我的逻辑

首先,TCP连接的3路握手计为1 RTT.TCP连接关闭时也是如此.

1)在非持久性HTTP中,我们必须建立TCP连接,因此到目前为止它是1个RTT.由于我们有10个对象,我们将有2*10 = 20个RTT.这导致1RTT +20 RTT = 21 RTT.[另一种可以计算的方法是说,因为它每次打开新的连接,对于10个对象,它将需要3个RTT,因此它将是30个RTT.

2)在持久性HTTP中,我们需要一个1RTT用于连接,1个用于每个对象.这导致1RTT + 10RTT = 11 RTT.[我应该添加一个RTT来关闭连接,从而导致12个RTT?根据我的理解,它会在一段时间后自行消失.]

3)在使用流水线操作的持久HTTP中,我们需要一个RTT来打开TCP连接,一个RTT发送10个对象,一个RTT来关闭连接.这导致1RTT + 1RTT + 1RTT = 3 RTT.

任何有关此事的帮助将非常感谢!

tcp http persistent pipelining

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

在Sql server字符串连接中处理NULL

我有以下SQL查询

select s.comments + s.further_comments from dbo.samples s where id = 1234
Run Code Online (Sandbox Code Playgroud)

但是,如果s.comments或s.further_comments为NULL,则整个字符串返回NULL

如何将NULL值转换为空字符串或至少仅返回此字符串中的非NULL值?

谢谢

sql sql-server string string-concatenation

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