Я пытаюсь преобразовать этот оператор в команду SQL - для тестирования и обучения.Базовый синтаксис против команды SQL - Formula Crystal Reports
Код в формуле в основном синтаксисе
if IsNumeric (Mid(Trim(X), 1)) Then
formula = UCASE(TRIM(MID(X, (INSTR (X, " ", 1) +1)))))
ELSE
formula = X.
Что я должен использовать вместо формулы в SQL команды и это должно быть сделано в SQL команды для повышения эффективности? Даже если я не должен, я хотел бы знать, как написать это в команде sql.
До сих пор я
CASE ISNUMERIC (Mid(Trim(X), 1)) Then
[BLANK] = UCASE(TRIM(MID(X, (CHARINDEX (X, " ", 1) +1)))))
ELSE
[BLANK] = X
EPV
выборки данных. Поэтому, когда я импортирую/связываю данные с задней стороны. Моя X поле выглядит как разнообразие: 1. 'zzabc123 - красный автомобиль'
2. 'ABC123 - The Black Car' 3. 'Зеленый автомобиль'
Я хочу, чтобы создать код SQL где:
- ПРОВЕРКА X (zzabc123 - красный автомобиль), чтобы увидеть, если есть zzabc123 в передних
- если это числовое, то вырезать переднюю часть - с помощью CHARINDEX найти где пространство начинает и захватывает только «красную машину».
- Если это не является числовым значением, просто зачистить часть DATA
- END СЛУЧАЙ
После этого случая оценки данных и использовать еще один случай, чтобы найти ключевые слова, чтобы использовать обобщенный термин для отчетности.
РЕЗУЛЬТАТЫ
RED CAR
- черный автомобиль
GREEN CAR
SELECT *, CASE ISNUMERIC(Mid(Trim(X), 1)) Then UCASE(TRIM(MID(X, (CHARINDEX (X, " ", 1) +1))))) ELSE X END CASE WHEN X LIKE '%RED%' THEN 'RED CAR' ELSE X LIKE '%BLACK%; THEN 'BLACK CAR' ELSE X LIKE '%GREEN%' THEN 'GREEN CAR' ELSE XY END FROM XTABLE`
Можете ли вы разместить несколько образцов записей и объяснить условия для вашего заявления CASE? Мне кажется, что вы пытаетесь проверить, является ли поле числовым, и если вы хотите выбрать все до положения пробела – AHiggins
Спасибо, я отредактировал мое сообщение с точным примером того, что я пытаюсь выполнить[email protected] –
Выглядит хорошо! Из любопытства всегда будет «пространство пространства» между? – AHiggins