Sql 更新varchar字段;使用单引号与不使用引号的区别
我正在使用Sql 更新varchar字段;使用单引号与不使用引号的区别,sql,teradata,Sql,Teradata,我正在使用Teradata作为数据库 桌子 我可以像这样更新数字字段 update ... set number = '1' or set number = 1 当我使用任何强制转换函数更新第二种方式时,我能够在select查询[had max(number)column]中得到正确的结果,即设置number=1 使用此选项(即set number='1')会在select查询中给出错误的结果,但没有显示 使用cast函数 有谁能解释这种区别吗 简言之,我需要两者之间的区别 更新 se
Teradata
作为数据库
桌子
我可以像这样更新数字字段
update ...
set number = '1'
or
set number = 1
当我使用任何强制转换函数更新第二种方式时,我能够在select查询[had max(number)column]
中得到正确的结果,即设置number=1
使用此选项(即set number='1'
)会在select查询中给出错误的结果,但没有显示
使用cast函数
有谁能解释这种区别吗
简言之,我需要两者之间的区别
更新
set number = '1'
or
set number = 1
将VARCHAR更新为“1”
set number = 1
自动进行Teradata样式的类型转换(格式内右对齐),并将数字设置为“1”
SELECT (1 (VARCHAR(10))) || '#', FORMAT(1), TYPE(1);
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
(1||'#') Format(1) Type(1)
----------- ------------------------------ -------------
1# -(3)9 BYTEINT
当您查询MAX(col)时,您期望得到什么?
对于VarChars'9'大于'11',如果需要数字比较,则应使用数字数据类型。很高兴知道dnoeth。max(column)应选择该组中列值最高的记录。我们在该列中也有一些aplha数值值,如sr001、se002、3、4、9。。
set number = 1
SELECT (1 (VARCHAR(10))) || '#', FORMAT(1), TYPE(1);
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
(1||'#') Format(1) Type(1)
----------- ------------------------------ -------------
1# -(3)9 BYTEINT