如何在sql server 2008中分配NULL值?

时间:2010-08-19 10:25:56

标签: sql-server-2008

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   

请帮忙!

2 个答案:

答案 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 - 因此也包含它们。