Использование функции обрезки для сужения набора результатов - PullRequest
0 голосов
/ 04 ноября 2018

Мне нужно собрать данные из двух столбцов, объединить их так, чтобы это были только первые шесть первого столбца и последние шесть второго столбца, разделенные знаком «+». Некоторые были введены со странными пробелами спереди или сзади, поэтому мы должны также использовать функцию обрезки и избавиться от всего NULL. У меня не было проблем с первой частью, но я изо всех сил пытаюсь использовать функцию обрезки таким образом, чтобы получить желаемый результат.
Вывод должен выглядеть так:

neededoutput

Образец входных данных:

sample

Следующий код возвращает результаты, но выходные данные не совпадают, поэтому я знаю, что обрезка неверна:

SELECT CONCAT(SUBSTRING(baseball, 1, 6), ' + ',
SUBSTRING(football, -6)) AS MYSTRING 
FROM datenumtest2  
WHERE baseball IS NOT NULL AND football IS NOT NULL;

Я также попробовал следующее, но получаю сообщение об ошибке о неверных параметрах:

SELECT CONCAT(SUBSTRING(LTRIM(baseball, 1, 6)), ' + ',
SUBSTRING(RTRIM(football, -6))) AS MYSTRING 
FROM datenumtest2
WHERE baseball IS NOT NULL AND
football IS NOT NULL;

Я все еще новичок в этом сайте и учусь, но я постарался включить как можно больше! Если есть другая информация, которую я могу добавить, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 04 ноября 2018

Вам просто нужно использовать Trim() для столбцов, прежде чем использовать Substring() функцию для них:

SELECT CONCAT(SUBSTRING(TRIM(baseball), 1, 6), ' + ',
              SUBSTRING(TRIM(football), -6)) AS MYSTRING 
FROM datenumtest2  
WHERE baseball IS NOT NULL AND 
      football IS NOT NULL;
...