Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 将计算的jet sql access列转换为sql server_Sql Server_Tsql_Ms Access_Jet Sql - Fatal编程技术网

Sql server 将计算的jet sql access列转换为sql server

Sql server 将计算的jet sql access列转换为sql server,sql-server,tsql,ms-access,jet-sql,Sql Server,Tsql,Ms Access,Jet Sql,如何在我的sql server列中转换此计算列访问权限 ([VratePctg] < 0.05) Or (Abs([Amount1]) < 1) Or (Abs([Amount2]) < 1) ([VratePctg]

如何在我的sql server列中转换此计算列访问权限

([VratePctg] < 0.05) Or (Abs([Amount1]) < 1) Or (Abs([Amount2]) < 1)
([VratePctg]<0.05)或(Abs([Amount1])<1)或(Abs([Amount2])<1)

谢谢你

你的问题缺乏背景,但这里是一个带以下条件的计算列的演示:

CREATE TABLE Demo 
(
    VratePctg decimal(5,2),
    Amount1 int,
    Amount2 int,
    ComputedColumn AS CAST(CASE WHEN [VratePctg] < 0.05 Or Abs([Amount1]) < 1 Or Abs([Amount2]) < 1 THEN 1 ELSE 0 END As Bit)
)
结果:

VratePctg   Amount1     Amount2     ComputedColumn
0,03        2           5           True
0,60        7           4           False
0,90        0           8           True
4,20        9           0           True

应该仍然在sql Server中工作的sql没有布尔类型;因此,您无法将
计算为一个值。但是,您可以在1 ELSE 0 END时使用
CASE来实现相同的效果。幸运的是,其余的语法已经是有效的T-SQL。@Jeroenmoster最好将1和0更改为
convert(1,bit)
以确保类型安全OK以及如何编写它?
ColumnName as CAST(如果[VratePctg]<0.05或Abs([Amount1])<1或Abs([Amount2])<1,则1以位结束)
问题是我必须对两个计算列进行计算,我必须替换表达式而不是列名。非常感谢。
VratePctg   Amount1     Amount2     ComputedColumn
0,03        2           5           True
0,60        7           4           False
0,90        0           8           True
4,20        9           0           True