SQL Server 데이터베이스에서 데이터 정제하기
Miriam Antona
Software Engineer
SELECT * FROM carriers
| code | name |
|------|---------------------------------|
| YV | Mesa Airlines Inc. |
| AA | American Airlines Inc. |
| B6 | JetBlue Airways |
| DL | Delta Air Lines Inc. |
| HA | Hawaiian Airlines Inc. |
| MQ | American Eagle Airlines Inc. |
| EV | ExpressJet Airlines Inc. |
| UA | United Air Lines Inc. |
| US | US Airways Inc. |
| ... | ... |
TRIM ( [characters ] string )
SELECT TRIM(' JetBlue Airways ');
JetBlue Airways
RTRIM, LTRIM 사용-- 뒤쪽의 모든 공백 제거
RTRIM ( character_expression )
-- 앞쪽의 모든 공백 제거
LTRIM ( character_expression )
SELECT LTRIM(RTRIM(' JetBlue Airways '));
JetBlue Airways
SELECT code, TRIM(name) AS name FROM carriers
SELECT code, LTRIM(RTRIM(name)) AS name FROM carriers
| code | name |
|------|------------------------------|
| YV | Mesa Airlines Inc. |
| AA | American Airlines Inc. |
| B6 | JetBlue Airways |
| DL | Delta Air Lines Inc. |
| HA | Hawaiian Airlines Inc. |
| US | US Airways Inc. |
| ... | ... |
SELECT * FROM airports
ORDER BY airport_state
| airport_code | airport_name | airport_city | airport_state |
|--------------|-----------------------------------------|-----------------|---------------|
| ... | ... | ... | ... |
| MIA | Miami International | Miami | fl |
| TPA | Tampa International | Tampa | Fl |
| FLL | Fort Lauderdale-Hollywood International | Fort Lauderdale | FL |
| MCO | Orlando International | Orlando | Florida |
| ... | ... | ... | ... |
"Fl" / "fl" / "Florida" -> "Florida"
REPLACE ( string_to_replace , occurrences , string_replacement )
지정한 문자열의 모든 발생을 다른 문자열로 바꿉니다
입력의 정렬 규칙(collation)에 따라 비교합니다
COLLATE를 사용합니다SELECT
airport_code, airport_name, airport_city,
REPLACE(airport_state, 'FL', 'Florida') AS airport_state
FROM airports
ORDER BY airport_state
| airport_code | airport_name | airport_city | airport_state |
|--------------|-----------------------------------------|-----------------|---------------|
| ... | ... | ... | ... |
| MIA | Miami International | Miami | Florida |
| TPA | Tampa International | Tampa | Florida |
| FLL | Fort Lauderdale-Hollywood International | Fort Lauderdale | Florida |
| MCO | Orlando International | Orlando | Floridaorida |
| ... | ... | ... | ... |
SELECT
airport_code, airport_name, airport_city,
REPLACE
(REPLACE(airport_state, 'FL', 'Florida'),
'Floridaorida', 'Florida') AS airport_state
FROM airports
ORDER BY airport_state
| airport_code | airport_name | airport_city | airport_state |
|--------------|-----------------------------------------|-----------------|---------------|
| MCO | Orlando International | Orlando | Florida |
| TPA | Tampa International | Tampa | Florida |
| FLL | Fort Lauderdale-Hollywood International | Fort Lauderdale | Florida |
| MIA | Miami International | Miami | Florida |
| ... | ... | ... | ... |
SELECT airport_code, airport_name, airport_city,
CASE
WHEN airport_state <> 'Florida' THEN REPLACE(airport_state, 'FL', 'Florida')
ELSE airport_state
END AS airport_state
FROM airports
ORDER BY airport_state
| airport_code | airport_name | airport_city | airport_state |
|--------------|-----------------------------------------|-----------------|---------------|
| MCO | Orlando International | Orlando | Florida |
| TPA | Tampa International | Tampa | Florida |
| FLL | Fort Lauderdale-Hollywood International | Fort Lauderdale | Florida |
| MIA | Miami International | Miami | Florida |
| ... | ... | ... | ... |
"Fl" / "fl" / "Florida" -> "FL"
SELECT
airport_code, airport_name, airport_city,
REPLACE(airport_state, 'Florida', 'FL') AS airport_state
FROM airports
ORDER BY airport_state
| airport_code | airport_name | airport_city | airport_state |
|--------------|-----------------------------------------|-----------------|---------------|
| MCO | Orlando International | Orlando | FL |
| TPA | Tampa International | Tampa | Fl |
| FLL | Fort Lauderdale-Hollywood International | Fort Lauderdale | FL |
| MIA | Miami International | Miami | fl |
| ... | ... | ... | ... |
UPPER ( character_expression )
SELECT
airport_code, airport_name, airport_city,
UPPER(
REPLACE(airport_state, 'Florida', 'FL')
) AS airport_state
FROM airports
ORDER BY airport_state
| airport_code | airport_name | airport_city | airport_state |
|--------------|-----------------------------------------|-----------------|---------------|
| ... | ... | ... | ... |
| MCO | Orlando International | Orlando | FL |
| TPA | Tampa International | Tampa | FL |
| FLL | Fort Lauderdale-Hollywood International | Fort Lauderdale | FL |
| MIA | Miami International | Miami | FL |
| ... | ... | ... | ... |
SQL Server 데이터베이스에서 데이터 정제하기