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 是可替换所有空结果的非空值。
参考资料:
百度百科计算列
SQL> create database link lnkrac connect to system identified by oracle using 'testrac';
Database link created
SQL> select count() from dba_objects@lnkrac;
COUNT()
----------
87031
SQL> set timing on
SQL> select utl_rawcast_to_varchar2(utl_rawcast_to_raw(object_name)) obj_name from dba_objects@lnkrac where rownum<=3;
OBJ_NAME
--------------------------------------------------------------------------------
ICOL$
I_USER1
CON$
Elapsed: 00:00:0001
SQL> select utl_rawcast_to_varchar2(utl_rawcast_to_raw@lnkrac(object_name)) obj_name from dba_objects@lnkrac where rownum<=3;
OBJ_NAME
--------------------------------------------------------------------------------
ICOL$
I_USER1
CON$
Elapsed: 00:00:0002
SQL>
两种方式好像都可以,貌似第二种略慢 试试前面一种吧
几乎一样,但是convert比cast多了个style
可以让转换结果变成指定的显示样式
以下是网上找到的参考资料
sql中的cast
和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。cast
和
convert
提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。
一、语法:
1、使用
cast
cast
(
expression
as
data_type
)
2、使用
convert
convert
(data_type[(length)],
expression
[,
style])
3、参数说明
expression
是任何有效的表达式。
data_type:
目标系统所提供的数据类型,包括
bigint
和
sql_variant。不能使用用户定义的数据类型。
length
nchar、nvarchar、char、varchar、binary
或
varbinary
数据类型的可选参数。
style
日期格式样式,借以将
datetime
或
smalldatetime
数据转换为字符数据(nchar、nvarchar、char、varchar、nchar
或
nvarchar
数据类型);或者字符串格式样式,借以将
float、real、money
或
smallmoney
数据转换为字符数据(nchar、nvarchar、char、varchar、nchar
或
nvarchar
数据类型)。
二、cast和convert的代码示例
sql
代码
复制
select
cast('123'
as
int)
--
123
select
convert(int,
'123')
--
123
select
cast(1234
as
int)
--
123
select
convert(int,
1234)
--
123
select
cast('1234'
as
int)
select
convert(int,
'1234')
--
conversion
failed
when
converting
the
varchar
value
'1234'
to
data
type
int
select
cast('1234'
as
decimal)
--
123
select
convert(decimal,
'1234')
--
123
select
cast('1234'
as
decimal(9,2))
--
12340
select
convert(decimal(9,2),
'1234')
--
12340
declare
@num
money
set
@num
=
123456
select
convert(varchar(20),
@num,
0)
--
123456
select
convert(varchar(20),
@num,
1)
--
1,23456
select
convert(varchar(20),
@num,
2)
--
12345600
三、convert函数的style参数说明
1、date
和
time
样式
不带世纪数位
(yy)
带世纪数位
(yyyy)
输入/输出
-
0
或
100
mon
dd
yyyy
hh:miam(或
pm)
1
101
1
=
mm/dd/yy
101
=
mm/dd/yyyy
2
102
2
=
yymmdd
102
=
yyyymmdd
3
103
3
=
dd/mm/yy
103
=
dd/mm/yyyy
4
104
4
=
ddmmyy
104
=
ddmmyyyy
5
105
5
=
dd-mm-yy
105
=
dd-mm-yyyy
6
106
6
=
dd
mon
yy
106
=
dd
mon
yyyy
7
107
7
=
mon
dd,
yy
107
=
mon
dd,
yyyy
8
108
hh:mi:ss
-
9
或
109
mon
dd
yyyy
hh:mi:ss:mmmam(或
pm)
10
110
10
=
mm-dd-yy
110
=
mm-dd-yyyy
11
111
11
=
yy/mm/dd
111
=
yyyy/mm/dd
12
112
12
=
yymmdd
112
=
yyyymmdd
-
13
或
113
dd
mon
yyyy
hh:mi:ss:mmm(24h)
14
114
dd
mon
yyyy
hh:mi:ss:mmm(24h)
-
20
或
120
yyyy-mm-dd
hh:mi:ss(24h)
-
21
或
121
yyyy-mm-dd
hh:mi:ssmmm(24h)
-
126
yyyy-mm-ddthh:mi:ssmmm(无空格)
-
127
yyyy-mm-ddthh:mi:ssmmmz(无空格)
-
130
dd
mon
yyyy
hh:mi:ss:mmmam
-
131
dd/mm/yyyy
hh:mi:ss:mmmam
2、float
和
real
样式
值
输出
0(默认值)
最多包含
6
位。
根据需要使用科学记数法。
1
始终为
8
位值。
始终使用科学记数法。
2
始终为
16
位值。
始终使用科学记数法。
3、money
和
smallmoney
样式
值
输出
0
小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如
423598。
1
小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如
3,51092。
2
小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如
3,51092。
126
转换为
char(n)
或
varchar(n)
时,等同于样式
2
以上就是关于1、sql查询语句时怎么把几个字段拼接成一个字段这几个字段是整型的。全部的内容,包括:1、sql查询语句时怎么把几个字段拼接成一个字段这几个字段是整型的。、oracle中cast_to_raw和cast_to_varchar2字符转换,结果必须保存在中间表里面吗、SQL SERVER中强制类型转换cast和convert的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)