我正在寻找一种方法来返回一个表示2个整数是否相等的位。当我尝试以下操作时,我得到“=''附近的语法错误。”我错过了什么?我正在使用SQL Server 2005。
DECLARE @ Table1Count AS INT
DECLARE @ Table2Count AS INT
SELECT @ Table1Count = COUNT(*)FROM Table1
SELECT @ Table2Count = COUNT(*)FROM Table2
PRINT @ Table1Count = @ Table2Count
感谢。
答案 0 :(得分:10)
IF @Table1Count = @Table2Count
PRINT 1
ELSE
PRINT 0
交替:
PRINT CASE WHEN @Table1Count = @Table2Count THEN 1 ELSE 0 END
答案 1 :(得分:3)
DECLARE @Table1Count AS INT
DECLARE @Table2Count AS INT
SELECT @Table1Count = COUNT(*) FROM Table1
SELECT @Table2Count = COUNT(*) FROM Table2
PRINT case when @Table1Count = @Table2Count then '1' else '0' end
答案 2 :(得分:0)
只是一个附录:我们的网络目前处于停止状态,所以我无法测试任何东西 - 这就是为什么我在Stackoverflow上闲逛而不是编写代码 - 所以请按照我在这里说的一些盐。但是:
有些SQL引擎有布尔变量,有些则没有。在Oracle中,“从双选择1 + 1 = 2”是一个synatx错误,因为1 + 1 = 2是一个操作,而不是表达式。你必须像其他海报所说的那样使用“案例”。但在Postgres中,“select 1 + 1 = 2”会显示“true”。
“<”的想法是一个像“+”一样的操作,除了它返回一个布尔值而不是一个int,是一个简单但功能强大的想法之一,有很大的后果......但它是在SQL之后发明的,只是慢慢地进入。
答案 3 :(得分:0)