我有以下两个表:
表1 :
Row_Id SR_NUM
------------------
100 1-12345
101 1-34567
表2 :
SRA_Id Value
----------------
100 Test
101 (Blank)
100 (Blank)
100 (Blank)
101 (Blank)
当我创建以下查询时:
SELECT DISTINCT
a. SR_NUM,
b.value
FROM
Table_1 a,
Table_2 b
WHERE
a.row_id = b.sra_id
我在输出中得到3条记录(2表示100 - 一个值为'Test',另一个值为(Blank))
我希望它只显示100条有价值的记录,而不是空白条。
你能告诉我我做错了什么吗?
感谢。
答案 0 :(得分:1)
GROUP BY a.SR_NUM
并选择例如MAX(b.VALUE)
可能就是你想要的。
SELECT a.SR_NUM,
MAX(b.VALUE) VALUE
FROM Table_1 a
INNER JOIN Table_2 b
ON a.ROW_ID = b.SRA_ID
GROUP BY a.SR_NUM;
(如果MAX()
为您提供了"(空白)"(我认为您的意思是NULL
),请将其替换为MIN()
。)
答案 1 :(得分:0)
我不知道这是否是您想要的,但您可以尝试:
SELECT a.SR_NUM, b.value FROM Table_1 as a
JOIN Table_2 as b ON (a.row_id = b.sra_id AND b.value != "(BLANK)");