Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 非常简单的列添加_Sql Server_Tsql_Sql Server 2008 - Fatal编程技术网

Sql server 非常简单的列添加

Sql server 非常简单的列添加,sql-server,tsql,sql-server-2008,Sql Server,Tsql,Sql Server 2008,我的印象是SQL Server将允许我执行添加,例如 SELECT val01, val02, val03 = (val01 + val02) FROM Table_1 所以val03是前面两列的相加。然而,在这个例子中,我确实看到了值2旁边的值1。你能告诉我哪里出了问题吗?那么val03是结果列表中val01和val02的串联?比如: VAL01 VAL02 VAL03 1 2 1 2 4 5 4 5 在这种情况下,V

我的印象是SQL Server将允许我执行添加,例如

SELECT     val01, val02, val03 = (val01 + val02)
FROM       Table_1

所以val03是前面两列的相加。然而,在这个例子中,我确实看到了值2旁边的值1。你能告诉我哪里出了问题吗?

那么val03是结果列表中val01和val02的串联?比如:

VAL01  VAL02  VAL03
    1      2   1  2
    4      5   4  5
在这种情况下,Val01或Val02都是非数字列,或者两者都是。投下他们:

SELECT val01, val02, val03 = (cast(val01 as float) + cast(val02 as float)) FROM Table_1

或者,修复列类型。

那么val03是结果列表中val01和val02的串联?比如:

VAL01  VAL02  VAL03
    1      2   1  2
    4      5   4  5
在这种情况下,Val01或Val02都是非数字列,或者两者都是。投下他们:

SELECT val01, val02, val03 = (cast(val01 as float) + cast(val02 as float)) FROM Table_1

或者,修复列类型。

操作符在SQL Server中有两种用途:

  • 对于数字(
    int
    bigint
    decimal
    等),它是一个加法运算符
  • 对于字符串
    varchar
    nvarchar
    char
    等),它是一个串联操作符
如果字符串数据类型字段中有数字数据,您将看到第二个值附加到第一个值

解决办法是:

  • 使用正确的数据类型。如果是数字,则数据类型应为数字
  • 转换为正确的数据类型-即
    val03=(转换(val01为int)+转换(val02为int))

操作员在SQL Server中有两种用途:

  • 对于数字(
    int
    bigint
    decimal
    等),它是一个加法运算符
  • 对于字符串
    varchar
    nvarchar
    char
    等),它是一个串联操作符
如果字符串数据类型字段中有数字数据,您将看到第二个值附加到第一个值

解决办法是:

  • 使用正确的数据类型。如果是数字,则数据类型应为数字
  • 转换为正确的数据类型-即
    val03=(转换(val01为int)+转换(val02为int))

如果您的val01和val02列是字符或varchar,但包含数字,则这些数字将按照上述语法连接起来

如果希望它们显示为数字,则需要对val01或val02字段使用CAST或CONVERT将它们添加为数值

例如:

从表1中选择val01、val02、val03
其中CAST(val03 as INT)=((CAST val01 as INT)+(CAST val02 as INT))

如果val01和val02列是字符或varchar,但包含数字,则这些数字将按上述语法连接

如果希望它们显示为数字,则需要对val01或val02字段使用CAST或CONVERT将它们添加为数值

例如:

从表1中选择val01、val02、val03
其中CAST(val03作为INT)=(CAST val01作为INT)+(CAST val02作为INT))

wVAL01和val02的数据类型是什么?我猜是char还是类似的?val01和val02是什么数据类型?太棒了!,错误的数据类型。顺便说一句,谢谢你,如果你仍然被允许做一些事情,比如
val03=(val01+val02)
,我不确定到底是什么给你留下了深刻的印象,但是如果是
val03=…
位,那么请注意这只是SQL Server中的一种别名替代方法。它与val03的
(val01+val02)完全相同。val01和val02的数据类型是什么?我猜是char还是类似的?val01和val02是什么数据类型?太棒了!,错误的数据类型。顺便说一句,谢谢你,如果你仍然被允许做一些事情,比如
val03=(val01+val02)
,我不确定到底是什么给你留下了深刻的印象,但是如果是
val03=…
位,那么请注意这只是SQL Server中的一种别名替代方法。它与val03
(val01+val02)完全相同。