подстрока на символе в db2 - PullRequest
       13

подстрока на символе в db2

2 голосов
/ 03 апреля 2012

У меня есть два столбца X и Y, где значения могут быть такими, как показано ниже:

  X        Y
--------------  
 rob     one.1 
 rob     two.2
 rob     abc.3
 rob     pqr.4
 harry   lmn.3
 harry   lkja.4
 harry   lkjs.6

Я запрашиваю столбец X. Это

select Y where X='rob'
select Y where X='harry'

Я хочу написать запрос в столбцах выше, где выходные данные будут такими строками, как «rob # 1,2,3,4» и «harry # 3,4,6»

Таким образом, первой частью строки результата будет значение X, за которым следует константа #, за которой следуют цифры в Y после '.' точка.

Итак, у Роба 1,2,3,4, у Гарри 3,4,6

Спасибо за чтение

Ответы [ 2 ]

1 голос
/ 09 апреля 2012

Я добился этого, используя агрегатные функции в db2:

concat('Harry # ',substr( xmlserialize( xmlagg( xmltext( concat( ', ', substr(myTable.salary, locate('.',myTable.salary)+1) ) ) ) as varchar( 1024 ) ), 3 ))
0 голосов
/ 03 апреля 2012

Вот пример конкатенации:

Это способ решить вашу проблему ..

Функция SQL CONCAT () используется для объединения двух или более строк. MySQL позволяет объединять более двух строк, в то время как другие - ровно две. Вот синтаксис:

CONCAT(expression)

Вот запрос для согласования имени сотрудника и его зарплаты в MySQL:

SELECT CONCAT(name,':',salary) as name_salary
    FROM employees

Вот вывод:

name_salary    
----------------
jack:3000.00   
mary:2500.00   
newcomer:2000.00
anna:2800.00   
Tom:2700.00    
foo:4700.00    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...