sql >> Database teknologi >  >> RDS >> Sqlserver

MSSQL:Opdater matchende rækker fra den uploadede fil

Dette er en meget nemmere tilgang til at komme ind i dine rørafgrænsede data. Du finder dine tabellignende data i #temp2. Herfra skulle det være nemt at OPDATERE ,INSERT eller FLET dine data ind i dit mål.

OBS:Jeg kunne lige gætte betydningen af ​​dine kolonner, så kolonnenavnene kan være noget vrøvl...

OPRET TABEL #temp1(WHOLEROW VARCHAR(8000));INSERT INTO #temp1 VALUES ('F20160323-1000|FSI|BISCOCHO|LEVERET|42317|||||GINA T|LEJER|42311'), ('F20160323-1001|FSI|MARTINNE|LEVERET|42314|||||MERLIE STRADA|IN LAW|42311'),('F20160323-1002|FSI|MANALO|LEVERET|42313|||LEJER|GINA A| |42311') ||GINA B|LEJER|42311'),('F20160323-1005|FSI|NINA|LEVERET|42318|||||MERLIE STRADA|SVIGTIG|42311');;WITH Splitted(AsXml) AS( SELECT CAST( '' + REPLACE(t1.WHOLEROW,'|','') + '' AS XML) FROM #temp1 AS t1)SELECT AsXml.value('x[ 1]','varchar(max)') AS ID ,ID_Splitted.* ,AsXml.value('x[2]','varchar(max)') AS FSI_Field ,AsXml.value('x[3]', 'varchar(max)') AS CAPTION ,AsXml.value('x[4]','varchar(max)') AS STATUS ,AsXml.value('x[5]','varchar(max)') AS NUMBER ,AsXml.value('x[6]','varchar(max)') AS Fld1 ,AsXml.value(' x[7]','varchar(max)') AS Fld2 ,AsXml.value('x[8]','varchar(max)') AS Fld3 ,AsXml.value('x[9]','varchar (max)') AS Fld4 ,AsXml.value('x[10]','varchar(max)') AS TARGET ,AsXml.value('x[11]','varchar(max)') AS TARGET_TYPE , AsXml.value('x[12]','varchar(max)') AS TARGET_NUMBERINTO #temp2FROM SplittedCROSS APPLY(SELECT LEFT( AsXml.value('x[1]','varchar(max)'),1) AS FirstLetter ,CAST(SUBSTRING(AsXml.value('x[1]','varchar(max)'),2,8) AS DATE) AS IncludedDate ,CAST(SUBSTRING( AsXml.value('x[1]', 'varchar(max)'),11.100) AS INT) AS IncludedNumber) AS ID_Splitted;SELECT * FRA #temp2;DROP TABLE #temp2;DROP TABLE #temp1; 

Resultatet

  ID FirstLetter inkluderet Datate Inclnmbr FSI Billedtekststatusnummer Måltype Numberf20160323-1000 F 2016-03-23 ​​1000 FSI Biscocho leveret 42317 Gina T Tenant 42311f20160323-1001 F 2016-03-23 ​​1001 FSI Martin Leveret 42314 Merlie Strada i 2016-03-23 ​​1001 FSI Martin leveret 42314 Merlie Strada i 2016-03-23-231 FSI LAW 42311F20160323-1002 F 2016-03-23 ​​ 1002 FSI MANALO DELIVERED 42313 GINA A TENANT 42311F20160323-1004 F 2016-03-23 ​​ 1004 FSI HAMOY CAJAYONDELIVERED 42311 MERLIE QTRADA IN LAW 42311F20160323-1003 F 2016-03-23 ​​ 1003 FSI FRANCISCA DELIVERED 42312 GINA B LEJER 42311F20160323-1005 F 2016-03-23 ​​1005 FSI NINA LEVERET 42318 MERLIE STRADA IN LAW 42311 



  1. PHP MySQL Drop Down Box Udfyld valgt værdi

  2. Ydeevnespørgsmål:PÅ DUBLIKAT NØGLOPDATERING vs. OPDATERING (MySQL)

  3. Selvstudium til SQL Server-tabelopdeling og -partitioner

  4. mysql Vælg fra Vælg