1

システムにインポートするために、データを含む巨大な Excel が与えられました。必要なデータ変換を実行できるように、それを SQL テーブルにインポートしました。私は多くのばかげた問題に出くわしました。解決策が見つからない最新のものは次のとおりです。

CompanyName では、名前が 2 回繰り返されていることがよくあります (常にではありません)。

[CompanyName]
INTERDYN SA   INTERDYN SA
EARTH TOUR   EARTH TOUR
SOUNDLIGHTS JAJ CYTER

ご覧の通り模様はありません。重複を見つけて双子の会社名を削除する狡猾な方法はありますか?

4

1 に答える 1

2

文字列の最初と最後の部分を比較して、真ん中の文字が空白かどうかをチェックするだけです。

CREATE TABLE Companies
( 
   id int identity
 , CompanyName varchar(50)
)

INSERT INTO Companies (CompanyName) 
VALUES ('test') 
     , ('test test') 
     , ('testtest') 
     , ('testz test')

-- Just query the corrected list
SELECT CASE WHEN substring(CompanyName, LEN(CompanyName)/2+1, 1) = ' ' and substring(CompanyName, 1, LEN(CompanyName)/2) = substring(CompanyName, LEN(CompanyName)/2+2, LEN(CompanyName)) 
            THEN substring(CompanyName, 1, LEN(CompanyName)/2) 
            ELSE CompanyName 
       END
FROM Companies

-- update the incorrect values
UPDATE Companies
   SET CompanyName = substring(CompanyName, 1, LEN(CompanyName)/2) 
 WHERE substring(CompanyName, LEN(CompanyName)/2+1, 1) = ' ' 
   AND substring(CompanyName, 1, LEN(CompanyName)/2) = substring(CompanyName, LEN(CompanyName)/2+2, LEN(CompanyName))

select * from Companies

drop table Companies
于 2013-03-09T09:46:11.707 に答える