A. 1、sql查询语句时怎么把几个字段拼接成一个字段这几个字段是整型的。
SQL中字符型字段的拼接可以使用“+”或者“||”来实现,不过考虑到你问题中这几个字段属于整形字段,需要先将整形进行数据类型转换后,再使用“+”或者“||”拼接。
拼接的语法为:
SELECT CAST(COLUMN1 AS VARCHAR(10)) + '-' + CAST(COLUMN2 AS VARCHAR(10)+ '-' + ........) as P FROM TABLE ;
或者:
SELECT CAST(COLUMN1 AS VARCHAR(10)) || '-' + CAST(COLUMN2 AS VARCHAR(10) || '-' ||........) as P FROM TABLE ;
其中CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。
语法:CAST (expression AS data_type)
举个例子:已知表 TableA,含ID、yy、mm、dd四个整数型字段。
(1)数据库字段拼接扩展阅读:
在SQL中,不同的数据库拼接字段的方法不尽相同,如
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CONCAT()只允许两个参数;
换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。
例子1:
MySQL/Oracle:
SELECT CONCAT(region_name,"-",store_name) name FROM Geography
或
SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';
结果:
'EastBoston
B. sql拼接两个字段的值空格在哪
没有空格。
在SQL SERVER2000的函数中,字符串的拼接不会产生空格。
在做业务数据分析的时候,可能会遇到这样一个场景,需要将多个字段进行拼接,变为一个长字符串。比如年、月、日三个字段拼接成完整的日期,或者姓、名两个字段拼接成姓名列。这就需要用到SQL查询中串联(拼接)方法,这在不同数据库中语法会有差异,下面会演示MySQL、Oracle、PostgreSQL、SQL Server这四种数据库中的实现方法。
C. sql如何将二个字段连接在一起
方法一:
sql中的连接符用“||”;
举例1:select 'zhang'||' san' from al ;结果就是 “zhang san”;
举例2:select name || '的年龄是'|| age from tablename;结果就是“zhangsna的年龄是11”。
方法二:
mysql, oracle db2
select field1 || field2 from tab
sql server:
select field1 + field2 from tab
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言,尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。
(3)数据库字段拼接扩展阅读:
SqlServer函数
upper(char_expr) 转为大写
lower(char_expr) 转为小写
space(int_expr) 生成int_expr个空格
replicate(char_expr,int_expr)复制字符串int_expr次
reverse(char_expr) 反转字符串
stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从start开始的length个字符用char_expr2代替
D. 怎么将数据库中两条数据相同的部分去掉,不同的字段的拼接!
写程序或过程,以相同的字段排序分组,然后循环取要拼接的字段拼接。
以ORACLE数据库过程为例:
v_topic varchar2(255);
v_输出 varchar2(255);
v_topic := '';
v_输出 :='';
for 游标名 in (select topic,datemonth from 表名 order by topic) loop
if v_topic <> 游标名.topic then
v_topic := 游标名.topic;
if v_输出 :<> '' then
--处理输出串
end if;
v_输出 := '';
else
v_输出:= v_输出 ||游标名.datemonth;
end if;
end loop;
E. SQL怎么拼接字符串
不同的数据库,相应的字符串拼接方式不同,通过对比加深一下记忆。
一、MySQL字符串拼接
1、CONCAT函数
语法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定长与不定长均可以
连接两个字符串
(5)数据库字段拼接扩展阅读
字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j"。
而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符串函数的应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
5、求字符串长度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串长度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.
例:pos(‘ab’,’12abcd’)=3
7、字符的大写转换。Upcase(ch) 求字符ch的大写体。
例:upcase(‘a’)=’A’
8、数值转换为数串。 过程 Str(x,s) 把数值x化为数串s.
例:str(12345,s); 结果s=’12345’
9、数串转换为数值。 过程val(s,x,I) 把数串s转化为数值x,如果成功则I=0,不成功则I为无效字符的序数,第三个参数也可不传
例:val(‘1234’,x,I);结果 x:=1234
F. 在sql数据库里多个字段进行字符串拼接变成其中一个字段的值
update table1 set eid=aid+'/'+bid+'/'+right('000'+cid,3)+'/'+right('000'+eid,3)
G. 1、sql查询语句时怎么把几个字段拼接成一个字段这几个字段是整型的。
1、语句如下:
select 字段A, 字段B, 字段A + 字段B as 字段C From 表1
注:字段A加上字段B的计算列命名为字段C
2、计算列
计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。
原题的答案就是“计算列”。
(7)数据库字段拼接扩展阅读:
计算列应用范围
计算列可用于选择列表、WHERE 子句、ORDER BY 子句或任何可使用正则表达式的其他位置,但下列情况除外:
用作 CHECK、FOREIGN KEY 或 NOT NULL 约束的计算列必须标记为 PERSISTED。如果计算列的值由具有确定性的表达式定义,并且索引列中允许使用计算结果的数据类型,则可将该列用作索引中的键列,或者用作 PRIMARY KEY 或 UNIQUE 约束的一部分。
例如,如果表中含有整数列a和b,则可以对计算列a+b创建索引,但不能对计算列a+ DATEPART(dd,GETDATE()) 创建索引,因为在后续调用中,其值可能发生改变。
计算列不能作为 INSERT 或 UPDATE 语句的目标。
数据库引擎基于使用的表达式自动确定计算列的为 Null 性。即使只有非空列,大多数表达式的结果也“认为”可为空值,因为下溢或溢出生成的结果也可能为空。使用带AllowsNull属性的 COLUMNPROPERTY 函数可查明表中任何计算列的为 Null 性。
通过指定 ISNULL (check_expression,constant) 可以将可为空值的表达式转换为不可为空值的表达式,其中,constant是可替换所有空结果的非空值。
网络.计算列
H. sql 中如何将相同字段的其它字段拼接在一起放到另一个字段里面
sql中如何将相同字段的其它字段拼接在一起放到另一个字段里面的方法。
如下参考:
1.将新表select*的表结构和数据程度从源表名复制到目标表名中(需要不存在目标表,因为在插入查询时将自动创建它)如下图。
I. mysql数据库拼接字段,求大神指教
--表结构设计有误,其实还需要path字段在插入数据的时候拼接id和pid存入path中即可
CREATETABLE`gtp`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`name`varchar(255)DEFAULTNULL,
`pid`int(11)DEFAULTNULL,
`path`varchar(255)DEFAULTNULL,
`status`varchar(255)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=16DEFAULTCHARSET=utf8;
--
INSERTINTO`gtp`VALUES('1','男装','0','0','1');
INSERTINTO`gtp`VALUES('2','女装','0','0','1');
INSERTINTO`gtp`VALUES('13','上衣','1','0,1','1');
INSERTINTO`gtp`VALUES('15','短袖','13','0,1,13','0');
J. 怎么从数据库字段里取出值,拼接后再放回数据库字段里
直接用SQL就能实现。我拿oracle来说,
select t.*,
(select max(sys_connect_by_path(c, '|')) result
from (select a,b,
c,
rn,
lead(rn) over(partition by b order by rn) rn1
from (select a,b,
c,
row_number() over(order by a, b, c desc) rn
from a))
start with b = t.b
and rn1 is null
connect by rn1 = prior rn) c
from (select distinct b from a) t
1 1 b1 tang
2 2 b2 jing|hao
根据条件就把jing字段和hao字段用|拼接起来了