2017-10-05 33 views
-2

我在我的數據庫名爲filename有一個領域 - 它總是遵循這個格式 - [BatchId] [CompanyId] [FinancialPeriod]SQL採取文本的一部分來更新另一場

一個例子是 001_100_201710

我想要做的就是從該字符串中取出[BatchId],然後在第一個分數之前的任何值,並更新數據庫中另一個稱爲Batch的字段。不知道如何獲得批量ID。

在此先感謝

+0

PLS後查詢您是否嘗試過... – etsa

+0

使用https://docs.microsoft.com/en-us/sql/ t-sql/functions/string-split-transact-sql –

+0

string_spilt不起作用 – ikilledbill

回答

0

您可以分割使用這樣的事情

DECLARE @filename as varchar(100) 
set @filename = '001_100_201710' 

DECLARE @index INT 
set @index = CHARINDEX('_', @filename) 
select SUBSTRING(@filename, 0, @index) BatchId