小编San*_*ndy的帖子

合并来自多行的数据

我在处理查询时相对较新,所以让我提前道歉。这是我将使用的 SQL Server 2012。这些数据已通过每晚从 Excel 导入的方式导入临时表。我需要将此数据从该表移动到我们的主硬件表中,并确保在检查时插入任何新数据以确保它更新任何旧数据。我会提供尽可能多的信息,请耐心等待。

字段名称是:

|Ticket_Num | Name | Worker | date1 | Serial | Part | Description1 | Type1 | Eqmt_Type |
Run Code Online (Sandbox Code Playgroud)

我需要将它们带入具有以下内容的表中:

   |Event_NUM|Name|Install_Date|Pull_Date|Install_Tech|Pull_Tech| PMP1_Desc|PMP1_Part|PMP1_Serial|PMP2_Desc|PMP2_Part|PMP2_Serial|PMP3_Desc|PMP3_Part|PMP3_Serial|Motor1_Desc|Motor1_Serial|Motor1_Part|Motor2_Desc| Motor2_Serial| Cab1_Disc|Cab1_Part|Cab1_Serial|Cab2_Desc|Cab2_Part|Cab2_Serial|Dis1_Desc|Dis1_Part|Dis1_Serial|Dis2_Desc|Dis2_Part|Disc2_Serial|
Run Code Online (Sandbox Code Playgroud)

这是 SQL Fiddle 的示例,其中包含从 Excel 中提取的数据: SQL Fiddle for data to be insert

这是 SQL Fiddle 和我想要的示例:SQL Fiddle example of what I would like

pivot t-sql sql-server-2012

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

Charindex,从字符串中获取特定数据

您好,我对 charindex 非常陌生,并尝试创建一个查询来提取我需要的信息,但遇到了错误。我在 stackexchange 以及其他一些网站上搜索了类似的问题,但似乎我仍然无法完全掌握这个概念来获得我需要的东西。

我最大的问题是我在列中的数据不是任何固定模式。我发现了一个 stackexchange question 回答了这个问题,但我的设置有点不同。以下是列 descr 和表工具的一些示例:

ID | Descr |
21 | Playhouse, Virginia Series, 98 Stage, PSDD, House|
35 | Playhouse, Virginia Series, 111 Stage, Inconel|
53 | Playhouse, FX Series, 125 Stage, House F31|
76 | FX Series, 134 Stage, F31, Onconel|
Run Code Online (Sandbox Code Playgroud)

多一点信息。在我要查找的数字之前应该总是有一个逗号。我发现千分之一的情况并非如此,但为了使这更容易,我们将假设它总是有一个前导逗号和空格。我要查找的数字可以是两位或三位。它也总是后跟一个空格和单词 stage。

这是我尝试但收到并出错的内容:选择

with cterecords(descr, position) as
(
    select
        descr, charindex(',', descr) position
        from facility
)
    select
        substring(descr, position +1,
        charindex('stage', descr,position) - position -1)
    from cterecords;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:消息 537,级别 16,状态 3,行 …

t-sql sql-server-2012

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

标签 统计

sql-server-2012 ×2

t-sql ×2

pivot ×1