Отдельный город и штат от 1 столбца;однако теперь возвращаем ЗНАЧИТЕЛЬНО меньше полей. Почему? - PullRequest
0 голосов
/ 01 октября 2019

Возникла проблема, из-за которой у меня значительно меньше записей, когда я удаляю (CHARINDEX(',', CITY) > 0)Что случилось? Как я могу это исправить?

По сути, этот код делит разделение 1 столбца, который содержит и город, и штат на 2 разных столбца, а затем, когда в этом 1 столбце просто указан правильный город (и нет штата), по умолчанию устанавливается город для этого, а затем штат. в другое правильное поле.

Количество записей, которое я получаю:

Количество записей: 4,229

SELECT       MODIFICATION_FLAG, RECORD_KEY, ISO_COUNTRY_CODE, NATIONAL_ID, BIC, UNIQUE_ID, INSTITUTION_NAME, BRANCH_INFORMATION, OFFICE_TYPE, STREET_ADDRESS_1, STREET_ADDRESS_2, STREET_ADDRESS_3, STREET_ADDRESS_4, SUBSTRING(CITY, CHARINDEX(',', CITY) + 1, LEN(CITY)) 
                    AS STATE, SUBSTRING(CITY, 0, CHARINDEX(',', CITY, - 1)) AS CITY, ZIP_CODE, POB_NUMBER, COUNTRY_NAME, CHIPS_UID, CONNECTED_BIC, NETWORK_CONNECTIVITY, TIMEZONE, NATIONAL_ID_TYPE, EID
FROM          srcFlatFile.dbo.SWIFT AS SWIFT
WHERE       (ISO_COUNTRY_CODE = 'US')

Количество записей, которое я хочу:

Количество записей: 28 377

SELECT       MODIFICATION_FLAG, RECORD_KEY, ISO_COUNTRY_CODE, NATIONAL_ID, BIC, UNIQUE_ID, INSTITUTION_NAME, BRANCH_INFORMATION, OFFICE_TYPE, STREET_ADDRESS_1, STREET_ADDRESS_2, STREET_ADDRESS_3, STREET_ADDRESS_4, SUBSTRING(CITY, CHARINDEX(',', CITY) + 1, LEN(CITY)) 
                    AS STATE, SUBSTRING(CITY, 0, CHARINDEX(',', CITY, - 1)) AS CITY, ZIP_CODE, POB_NUMBER, COUNTRY_NAME, CHIPS_UID, CONNECTED_BIC, NETWORK_CONNECTIVITY, TIMEZONE, NATIONAL_ID_TYPE, EID
FROM          srcFlatFile.dbo.SWIFT AS SWIFT
WHERE       (ISO_COUNTRY_CODE = 'US') AND (CHARINDEX(',', CITY) > 0)

Для ожидаемых результатов у меня должно быть количество записей 28 377 строк.

1 Ответ

0 голосов
/ 01 октября 2019

Вы (четко) отфильтровываете все строки без запятых. Чтобы сделать то, что вы хотите, используйте условную логику в предложении SELECT. Я думаю, что логика:

SELECT . . . 
       (CASE WHEN CITY LIKE '%,%'
             THEN SUBSTRING(CITY, CHARINDEX(',', CITY) + 1, LEN(CITY)) 
        END) AS STATE, 
       SUBSTRING(CITY, 0, CHARINDEX(',', CITY + ',') -1) AS CITY,
       . . .
FROM srcFlatFile.dbo.SWIFT AS SWIFT
WHERE ISO_COUNTRY_CODE = 'US'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...