我在处理查询时相对较新,所以让我提前道歉。这是我将使用的 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
您好,我对 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,行 …