Cusid Cusgroupid Productid
5 NULL NULL
ppid cusgroupid list bulk cost billing
854 NULL 45.00 42.00 42.00 42.00
855 2 39.00 36.00 33.00 30.00
我想比较两张桌子, 期待结果是
1,如果cusgroupid为2,则仅选择该行
ppid cusgroupid list bulk cost billing
855 2 39.00 36.00 33.00 30.00
2,如果cusgroupid为null,则只选择该行
ppid cusgroupid list bulk cost billing
854 NULL 45.00 42.00 42.00 42.00
请帮忙!
答案 0 :(得分:1)
仍然没有确定你需要什么,但这会让你更进一步吗?
SELECT * FROM YourTable WHERE cusgroupid = 2
SELECT * FROM YourTable WHERE cusgroupid IS NULL
或者
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2
ON ISNULL(t2.cusgroupid, -1) = ISNULL(t1.cusgroupid, -1)
或
SELECT * FROM YourTable WHERE cusgroupid = 2 OR cusgroupid IS NULL
答案 1 :(得分:0)
如果要使所有行的值为2或NULL,请使用:
SELECT ppid, cusgroupid, list, bulk, cost, billing
FROM dbo.YourTable
WHERE ISNULL(cusgroupid, 2) = 2
这将选择cusgroupid = 2
的所有行,如果cusgroupid为NULL,它也将使用值2 - 因此也包含它们。