我想创建一个 Y/N 标志,其中 Y 表示给定行中每一列中的每个有效值都相等,否则为 N。我需要排除任何包含空值、空格或全零的列。认为:
CREATE TABLE z_test
(ID INT NOT NULL,
D1 VARCHAR(8)NULL,
D2 VARCHAR(8)NULL,
D3 VARCHAR(8)NULL,
D4 VARCHAR(8)NULL,
DFLAG CHAR(1)NULL)
INSERT INTO z_test VALUES (1,NULL,' ','000000','00000000',NULL)
INSERT INTO z_test VALUES (1,'20120101','0000','20120101','00000000',NULL)
INSERT INTO z_test VALUES (2,'20100101','20100101','20100101','20100101',NULL)
INSERT INTO z_test VALUES (2,'00000000','20090101','0','20090101',NULL)
INSERT INTO z_test VALUES (3,'00000000','20090101',NULL,'20120101',NULL)
INSERT INTO z_test VALUES (3,'20100101',' ',NULL,'20100101',NULL)
所需的输出(不包括 D1 到 D4,虽然我不想放弃它们)是:
ID DFLAG
---------------
1 N
1 Y
2 Y
2 Y
3 N
3 Y
速度不是问题,因为此查询不会经常运行,但它位于较大的表上。
任何指示或建议将不胜感激!