1、sql查询语句时怎么把几个字段拼接成一个字段?这几个字段是整型的。

 我来答
乐海白35
推荐于2019-10-03 · TA获得超过284个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

1、语句如下:

select 字段A, 字段B, 字段A + 字段B as 字段C  From 表1

注:字段A加上字段B的计算列命名为字段C

2、计算列

计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。

原题的答案就是“计算列”。

扩展资料:

计算列应用范围

计算列可用于选择列表、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 是可替换所有空结果的非空值。

参考资料:

百度百科.计算列



加百列windy
高粉答主

推荐于2019-10-23 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:96万
展开全部

通过GROUP_CONCAT实现,具体过程如下:

1、原SQL语句如下:

SELECT q.`id`, q.`questionContent`, o.`questionOption` FROM `exam_question` q

INNER JOIN `exam_question_option` o ON q.`id` = o.`questionId` 

WHERE q.`questionType` = 1

2、此时的查询结果如下表:

3、现在根据ID,将 questionOption 的字段整合拼接在一起,更改后的SQL语句如下:

SELECT q.`id`, q.`questionContent`, GROUP_CONCAT(o.`questionOption`) AS questionOptionList FROM `exam_question` q

INNER JOIN `exam_question_option` o ON q.`id` = o.`questionId` 

WHERE q.`questionType` = 1

GROUP BY q.`id`

3、执行结果如下:

扩展资料:

函数重点:不要忘了 GROUP BY id。

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']),group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函

数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
supboy306
推荐于2019-10-12 · TA获得超过2.6万个赞
知道答主
回答量:243
采纳率:100%
帮助的人:13.3万
展开全部

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四个整数型字段。

使用sql将yy、mm、dd三个字段进行拼接,语法:

select ID,cast(yy as varchar(10))+ '-' + cast(mm as varchar(10)) + '-' + cast(dd as varchar(10))  as pp from TableA;

则输出结果为:

扩展资料:

在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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hit_lubin
推荐于2017-11-24 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2019万
展开全部
哪种数据库?
如果是SQLSERVER: SELECT CAST(COLUMN1 AS VARCHAR(10)) + '-' + CAST(COLUMN2 AS VARCHAR(10) ...) as P FROM TABLE 这么一直拼就好了。
如果是ORACLE: SELECT TO_CHAR(COLUMN1) || '-' || TO_CHAR(COLUMN1)|| '-' || TO_CHAR... AS P FROM TABLE
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cy20090503
2011-05-04 · TA获得超过581个赞
知道小有建树答主
回答量:301
采纳率:100%
帮助的人:180万
展开全部
SELECT CONVERT(VARCHAR(10),BILLID) + CONVERT(VARCHAR(10),BILLID) FROM S_BILL sb

说明,所有数字都可以,可以很多个字段连接,在SQL2000下测试过

这个最易明了,CONVERT(VARCHAR(10),BILLID) 转成字符,
+ 表示连接
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式