百度
360搜索
搜狗搜索

sql concat函数用法,SQL---CONCAT系列函数详细介绍

本文目录一览: mysql中的concat用法!

MySQL的concat函数可以连接一个或者多个字符串,如
mysql> select concat('10');+--------------+| concat('10') |+--------------+| 10 |+--------------+1 row in set (0.00 sec) mysql> select concat('11','22','33');+------------------------+| concat('11','22','33') |+------------------------+| 112233 |+------------------------+1 row in set (0.00 sec)使用方法:
CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
注意:
如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
使用方法:CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast
mysql中CONCAT的用法如下:
1.>CONCAT拼接字符串
SELECT CONCAT('HELLO', ' WORLD') AS expr
>GROUP_CONCAT可以和GROUP BY语句一起用
SELECT GROUP_CONCAT(name) AS names FROM xxx
2.SELECT GROUP_CONCAT(name) AS names FROM xxx GROUP BY yy
>将符合条件的同一列中的不同行数据拼接, 以逗号分隔
>names返回的是blob类型, 在java中需要特殊处理, 否则出错:
No Dialect mapping for JDBC type:
或者将其转化为varchar类型
SELECT TRIM(GROUP_CONCAT(name)) AS names FROM xxx
concat 等同于字符串连接符 ||,
你的等价于
concat(goods_sn,goods_title,goods_brief,goods_name) LIKE '%tablet%'
goods_sn||goods_title||goods_brief||goods_name LIKE '%tablet%
举个例子 select concat('aa','bb');------------最终显示的就是 aabb,同时,concat有 to_char的作用,就是把其他类型转成varchar类型的
这个sql语句是指从数据库表里面拼接组合goods_sn,goods_title,goods_brief,goods_name 有包含tablet字段的数据。等价于goods_sn||goods_title||goods_brief||goods_name LIKE '%tablet%。
concat 等同于字符串连接符 ||,concat(字串1, 字串2, 字串3, ...),将字串1、字串2、字串3,等字串连在一起。
扩展资料:
MySQL,Oracle,SQL Server拼接字符串查询示例:
例子1:
MySQL:
SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston';
例子2:
Oracle:
SELECT region_name || ' ' || store_name FROM Geography WHERE store_name = 'Boston';
例子3:
SQL Server:
SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston';
参考资料:MySQL字符串连接CONCAT()函数_W3Cschool

SQL中字符串的连接

在MYSQL中字符串连接使用的是concat内置函数。
CONCAT() 的语法如下:
CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CONCAT()只允许两个参数;
换言之,一次只能将两个字串串连起来,不过,在Oracle中,可以用'||'来一次串连多个字串。
扩展资料:
注意:
如果所有参数均为非二进制字符串,则结果为非二进制字符串。
如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)
参考资料来源:百度百科-concat()

SQL---CONCAT系列函数

mysql中,只要拼接字符串中有null,则为null。
MYSQL里的CONCAT函数用于将两个字符串连接起来,形成一个单一的字符串。

如下面的例子:

mysql>?select?concat('11','22','33');

+------------------------+

|?concat('11','22','33')?|

+------------------------+

|?112233?|

+------------------------+

1?row?in?set?(0.00?sec)

MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

mysql>?select?concat('11','22',null);

+------------------------+

|?concat('11','22',null)?|

+------------------------+

|?NULL???|

+------------------------+

1?row?in?set?(0.00?sec)

MySQL中concat_ws函数

使用方法:

contcat_ws(separator,str1,str2,...)

contcat_ws()?代表?CONCAT?With?Separator?,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为?NULL,则结果为?NULL。函数会忽略任何分隔符参数后的?NULL?值。

如连接后以逗号分隔

mysql>?select?concat_ws(',','11','22','33');

+-------------------------------+

|?concat_ws(',','11','22','33')?|

+-------------------------------+

|?11,22,33?|

+-------------------------------+

1?row?in?set?(0.00?sec)

和MySQL中concat函数不同的是,?concat_ws函数在执行的时候,不会因为NULL值而返回NULL?

mysql>?select?concat_ws(',','11','22',NULL);

+-------------------------------+

|?concat_ws(',','11','22',NULL)?|

+-------------------------------+

|?11,22?|

+-------------------------------+

1?row?in?set?(0.00?sec)

HQL里的CONCAT函数大致用法更SQL的相同

我使用的常用形式为:

select a, b, concat_ws(',' , collect_set(cast(c as string)))

from table group by a,b;

上文HQL中collect_set?有两个作用,第一个是 去重 ,去除group by后的重复元素,

第二个是形成一个 集合 ,将group by后属于同一组的第三列集合起来成为一个集合。与contact_ws

结合使用就是将这些元素以逗号分隔形成字符串。当使用collect_list是则不会去重,它会将第三列的集合全部都列出来

cast? ,用法cast(value as type),将某个列的值显示的转化为某个类型,cast(age as string ) 将int类型的数据转化为了String类型。

sql字符串连接函数

如果只是变成11-11111-11这样,那很简单select * from a where substring(value,1,2) + '-' + substring(value,3,5) + '-' + substring(value,8,2)not in (select b from data);
select *
from a
where (SUBSTR(value, 0, 2) || '-' || SUBSTR(value, 2, 5) || '-' ||
SUBSTR(value, 8, 9)) not in (select b from data);
或者直接更新valueupdate a set value=(SUBSTR(value, 0, 2) || '-' || SUBSTR(value, 2, 5) || '-' ||
SUBSTR(value, 8, 9));
如果不是ORACLE 的话SUBSTR 换成SUBSTRING ,||换成+
select * from a where LEFT(value,2)+'-'+substring(value,3,5)+'-'+right(value,2) not in (select DATA from B)
REPLACE(b.DATE,'_','')然后比较更好
select * from a where value not in (select substring(b,1,2)+'-'+substring(b,3,5)+'-'+substring(b,8,4) from data)
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CONCAT()只允许两个参数;
换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。
来看几个例子。假设我们有以下的表格:
Geography 表格
region_name store_name
East Boston
East New York
West Los Angeles
West San Diego
例子1:
MySQL/Oracle:
SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';
结果:
'EastBoston'
例子2:
Oracle:
SELECT region_name || ' ' || store_name FROM Geography
WHERE store_name = 'Boston';
结果:
'East Boston'
例子3:
SQL Server:
SELECT region_name + ' ' + store_name FROM Geography
WHERE store_name = 'Boston';
结果:
'East Boston'

阅读更多 >>>  linux怎么导入sql

concat函数是计算日期的吗?

concat函数是计算日期的。concatenate函数的含义:把多个字符文本或数值连接在一起,实现合并的功能。它的用法也是非常灵活的。
concat函数的使用方法
使用concatenate函数把单元格中的文本链接起来。输入公式=CONCATENATE(A1,B1,C1,)。注意concatenate中的参数“-”。要加引号,且为英文状态下输入。
oncatenate作用相当于“&”。当参数少的时候,使用&比较简便。
CONCAT_WS(separator,str1,str2,...) 是CONCAT()的特殊形式。
第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
concat函数是计算日期的。
CONCAT函数不仅是针对计算日期的,concat函数还是一个SQL字符串函数,可将两个或两个以上的字符表达式连接成一个字符串,并且CONCAT函数还具有连接数值的功能。
concat 函数一般用在SELECT 查询语法中,用于修改返回字段内容。
concat函数与concatenate函数的区别
在于concat函数可以直接连接一个单元格区域内容,但得到的结果中各文本之间没有分隔,如concat(1,2,3),结果为123。
而concatenate函数需要手动输入每个参数值,无法将一个单元格区域作为参数来执行公式运算,它的结果则完全取决于各参数内容,如concatenate(1,"-",2,"-",3),结果为1-2-3。

SQL语句小数变成百分数

select convert(numeric(8,2) ,
cast( (select convert(Numeric(8,2),( select COUNT(*) from 表 where 列1=1229)) /
(select count(列1) from 表))) * 100 as varchar(10) ) + '%'
注:*100 as varchar(10))+'%' (10) 变成长度是10的字符串,然后再加上%号,如果不用加%,就不用cast,直接 * 100 就可以了。
扩展资料:注意事项
一、concat函数
该函数用于字串的拼接,比如我们想把10变成10%,就可以写成:
select concat(10,'%');
二、FLOOR(X)
将小数的小数部分去除,只留下整数部分,并且不进行四舍五入。
select FLOOR(5.5);
运行结果为:5
ROUND(X,D)函数和TRANCATE(X,D)函数
两个函数都可以用来对小数保留指定小数位数,其中第二个参数D用来指定要保留到第几位。差别是前者会进行四舍五入,而后者不会。
select ROUND(5.55,1);
select TRANCATE(5.55,1);
二者的运行结果分别为:5.6、5.5。
问题分析:
1、小数肯定是数字类型
2、百分数肯定是字符类型,另外百分比一般只有两位小数
解决办法:
1、需要先将小数变成百分比,也就是将小数*100,将结果小数位保留为两位
2、再将小数*100转为字符类型后在附加%符号
示例:将小数【0.1234】转为百分比【12.34%】
代码:
select cast(cast(0.1234*100 as numeric(10,2)) as varchar(50))+'%'
select convert(numeric(8,2) ,
cast( (select convert(Numeric(8,2),( select COUNT(*) from 表 where 列1=1229)) /
(select count(列1) from 表))) * 100 as varchar(10) ) + '%'
代码:
select cast(cast(0.1234*100 as numeric(10,2)) as varchar(50))+'%'
问题分析:
1、小数肯定是数字类型
2、百分数肯定是字符类型,另外百分比一般只有两位小数
解决办法:
1、需要先将小数变成百分比,也就是将小数*100,将结果小数位保留为两位
2、再将小数*100转为字符类型后在附加%符号
示例:将小数【0.1234】转为百分比【12.34%】
扩展资料:
注意事项
一、concat函数
该函数用于字串的拼接,比如我们想把10变成10%,就可以写成:
select concat(10,'%');
二、FLOOR(X)
将小数的小数部分去除,只留下整数部分,并且不进行四舍五入。
select FLOOR(5.5);
运行结果为:5
ROUND(X,D)函数和TRANCATE(X,D)函数
两个函数都可以用来对小数保留指定小数位数,其中第二个参数D用来指定要保留到第几位。差别是前者会进行四舍五入,而后者不会。

concat和concat_ws()区别及MySQL的几个实用字符串函数_MySQL

bitsCN.com 1、concat()函数1.1 MySQL的concat函数可以连接一个或者多个字符串,如mysql> select concat('10');+--------------+| concat('10') |+--------------+| 10 |+--------------+1 row in set (0.00 sec) mysql> select concat('11','22','33');+------------------------+| concat('11','22','33') |+------------------------+| 112233 |+------------------------+ 1 row in set (0.00 sec) 而Oracle的concat函数只能连接两个字符串 SQL> select concat('11','22') from dual; 1.2 MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL mysql> select concat('11','22',null);+------------------------+| concat('11','22',null) |+------------------------+| NULL |+------------------------+1 row in set (0.00 sec) 而Oracle的concat函数连接的时候,只要有一个字符串不是NULL,就不会返回NULL SQL> select concat('11',NULL) from dual;CONCAT--11 2、concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接如连接后以逗号分隔mysql> select concat_ws(',','11','22','33'); +-------------------------------+| concat_ws(',','11','22','33') |+-------------------------------+| 11,22,33 |+-------------------------------+1 row in set (0.00 sec) 和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULLmysql> select concat_ws(',','11','22',NULL);+-------------------------------+| concat_ws(',','11','22',NULL) |+-------------------------------+| 11,22 |+-------------------------------+1 row in set (0.00 sec) 3、group_concat()可用来行转列, Oracle没有这样的函数 完整的语法如下group_concat([DISTINCT] 要连接的字段[Order BY ASC/DESC 排序字段] [Separator '分隔符'])如下例子mysql> select * from aa; +------+------+| id | name |+------+------+| 1 | 10 || 1 | 20 || 1 | 20 || 2 | 20 || 3 | 200 || 3 | 500 |+------+------+6 rows in set (0.00 sec)3.1 以id分组,把name字段的值打印在一行,逗号分隔(默认)mysql> select id,group_concat(name) from aa group by id;+------+--------------------+| id | group_concat(name) |+------+--------------------+| 1 | 10,20,20 || 2 | 20 || 3 | 200,500 |+------+--------------------+ 3 rows in set (0.00 sec) 3.2 以id分组,把name字段的值打印在一行,分号分隔mysql> select id,group_concat(name separator ';') from aa group by id;+------+----------------------------------+| id | group_concat(name separator ';') |+------+----------------------------------+| 1 | 10;20;20 || 2 | 20 || 3 | 200;500 |+------+----------------------------------+ 3 rows in set (0.00 sec) 3.3 以id分组,把去冗余的name字段的值打印在一行,逗号分隔 mysql> select id,group_concat(distinct name) from aa group by id; +------+-----------------------------+| id | group_concat(distinct name) |+------+-----------------------------+| 1 | 10,20 || 2 | 20 || 3 | 200,500 |+------+-----------------------------+ 3 rows in set (0.00 sec) 3.4 以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序 mysql> select id,group_concat(name order by name desc) from aa group by id; +------+---------------------------------------+| id | group_concat(name order by name desc) |+------+---------------------------------------+| 1 | 20,20,10 || 2 | 20 || 3 | 500,200 |+------+---------------------------------------+ 3 rows in set (0.00 sec) 4、repeat()函数,用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数 mysql> select repeat('ab',2); +----------------+| repeat('ab',2) |+----------------+| abab |+----------------+ 1 row in set (0.00 sec) 又如mysql> select repeat('a',2); +---------------+| repeat('a',2) |+---------------+| aa |+---------------+1 row in set (0.00 sec) bitsCN.com

阅读更多 >>>  mysql数据库为什么连接失败,mysql数据库连接时出错,怎么办?

sql连接字符串的意思 求解释

在mysql中字符串连接使用的是concat内置函数。可以写为:select
*
from
mydb
where
name
=concat('a','bc')
在sql
server中字符串连接用+号。可以写为:select
*
from
mydb
where
name
='a'+'bc'
在oracle中字符串连接用的是||号。

sql语句中的字符串连接

那要看你使用的是什么样的SQL系统,如果使用的是标准的SQL,一般可以这样写:
update
char
set
name=concat(name,"abc")
where
id=1;
这里要注意的是:concat是标准的字符串连接函数,你要保证你name属性的数据类型是字符串型的,还有,根据你使用的系统,决定引用字符串时是使用单引号还是双引号;如果你使用的系统是MySQL,MSSQL或者其他的SQL,一般还有对应的更加简洁的表达式。
还有,在有的SQL系统里,你上面的表达式是可以使用的,只需把单引号换双引号即可。
答案补充
你用我给你些的标准SQL的代码,绝对没有错,我刚才PHPMYADMIN上执行了的,没有问题。如果你不信的话我可以发图。

网站数据信息

"sql concat函数用法,SQL---CONCAT系列函数"浏览人数已经达到25次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:sql concat函数用法,SQL---CONCAT系列函数的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!