Sql db2中字符的子字符串

Sql db2中字符的子字符串,sql,db2,substring,Sql,Db2,Substring,我有两列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

我有两列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


感谢阅读

以下是一个示例:

这是解决你问题的方法

SQL CONCAT函数用于连接两个或多个字符串。MySQL允许连接两个以上的字符串,而另一个字符串正好连接两个。以下是语法:

CONCAT(expression)
以下是在MySQL中对concat员工姓名和工资的查询:

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    

下面是一个浓缩的例子:

这是解决你问题的方法

SQL CONCAT函数用于连接两个或多个字符串。MySQL允许连接两个以上的字符串,而另一个字符串正好连接两个。以下是语法:

CONCAT(expression)
以下是在MySQL中对concat员工姓名和工资的查询:

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    

我在db2中使用聚合函数实现了它:

concat('Harry # ',substr( xmlserialize( xmlagg( xmltext( concat( ', ', substr(myTable.salary, locate('.',myTable.salary)+1) ) ) ) as varchar( 1024 ) ), 3 ))

我在db2中使用聚合函数实现了它:

concat('Harry # ',substr( xmlserialize( xmlagg( xmltext( concat( ', ', substr(myTable.salary, locate('.',myTable.salary)+1) ) ) ) as varchar( 1024 ) ), 3 ))

您需要做的是在子查询select RightCHARINDEXY“.”中进行连接。您给出的解决方案是一个简单的连接。。。但是,要求要复杂得多。。其中,薪资部分来自三个不同的行,输出应为该格式的名称:sal1、sal2、sal3……您需要做的是在子查询select RightCHARINDEXY“中进行连接。”从表格中,您给出的解决方案是一个简单的连接。。。但是,要求要复杂得多。。其中,工资部分来自三个不同的行,输出应为name:sal1、sal2、sal3格式。。。