【发布时间】:2016-11-11 12:04:07
【问题描述】:
鉴于是我的表结构,现在我需要编写一个查询来比较“STRVAL1 和 STRVAL2”,然后是“BVAL1 和 BVAL2”,如果两者不相同,则应返回该行。
预期结果...
请使用以下脚本获取数据
DECLARE @TAB TABLE (ID INT, STRVAL1 VARCHAR(8), STRVAL2 VARCHAR(8), BVAL1 BIT, BVAL2 BIT)
INSERT INTO @TAB VALUES
(1, NULL, NULL, NULL, NULL)
, (2, '', NULL, NULL, NULL)
, (3, '', '', NULL, NULL)
, (4, 'VAL', 'VAL', NULL, NULL)
, (5, 'VAL1', 'VAL2', NULL, NULL)
, (6, NULL, NULL, 0, NULL)
, (7, NULL, NULL, 0, 0)
, (8, NULL, NULL, 1, 1)
, (9, NULL, NULL, 1, 0)
SELECT ID, STRVAL1, STRVAL2, BVAL1, BVAL2
FROM @TAB
【问题讨论】:
-
类似使用 ISNULL(Field,'') ''
-
@Christopher - 正在考虑 ISNULL 和 COALESCE - 但是如果非空端包含您的替代值怎么办 - 如果您将 COALESCE 设置为“N/A”,如果您使用“N”则会出错/A' - 加上另一个是位字段
标签: sql sql-server database sql-server-2008-r2 qsqlquery