Hej, Ett par sätt: Gôtt!Ta ut ett löpnummer ur ett filnamn
Jag har ett litet problem med att ta ut ett löpnummer ur ett filnamn.
Filenamnen har en specifikt format. DnB_Daily_030309_40.csv.
Första delen (DnB_Daily_) är statisk andra delen är datumet. dvs alltid 6 i längd följt av ett löpnummer.
Jag vill ta ut löpnummret för att kunna jämföra med föregåendes fils löpnummer för kontroll så att filerna inte har kommit in i oordning. Det jag inte har kunnat klura ut är hur jag ska hantera när löpnummret går över till 100 och 1000 osv. Löpnummret börjar ju alltid på position 18 så jag behöver något tips på hur jag ska beräkna längden från position 18 till . i finamnet.
Typ: set @serialnumber = substring(@import_name_DnB ,18, length???)
Tacksam för alla svar!
/MikaelSv: Ta ut ett löpnummer ur ett filnamn
<code>
-- Om filändelsen alltid är ".csv"
SELECT REPLACE(RIGHT(@import_name_DnB, LEN(@filename) - 17), '.csv', '');
</code>
<code>
SELECT SUBSTRING(@import_name_DnB, 18, CHARINDEX('.', @filename) - 18);
</code>Sv: Ta ut ett löpnummer ur ett filnamn
... ännu en variant om det alltid är tre understreck i filnamnet :-)
<code>
SELECT PARSENAME(REPLACE(LEFT((@import_name_DnB, LEN((@import_name_DnB) - 4), '_', '.'), 1);
</code>