Home Forums SQL Server 7,2000 T-SQL SELECT COUNT(*) or COUNT(1) Performance or Benefits? RE: SELECT COUNT(*) or COUNT(1) Performance or Benefits?

  • Maybe I didn't make me clear. What I mean is that if the Nth column can have NULL value in the table, COUNT(*) and COUNT(N) may have different value.

    In the example I given above,

    the CustomerID is NOT NULL in the table; Fax and Region can be  NULL in the table and some records REALLY have null values for the them. You can see the four COUNT() give different results.

    The table is defined as:

    CREATE TABLE [dbo].[Customers] (

     [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

     [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

     [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

     [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

    ) ON [PRIMARY]

    GO

    ALTER TABLE [dbo].[Customers] WITH NOCHECK ADD

     CONSTRAINT [PK_Customers] PRIMARY KEY  CLUSTERED

     (

      [CustomerID]

    &nbsp  ON [PRIMARY]

    GO

     CREATE  INDEX [City] ON [dbo].[Customers]([City]) ON [PRIMARY]

    GO

     CREATE  INDEX [CompanyName] ON [dbo].[Customers]([CompanyName]) ON [PRIMARY]

    GO

     CREATE  INDEX [PostalCode] ON [dbo].[Customers]([PostalCode]) ON [PRIMARY]

    GO

     CREATE  INDEX [Region] ON [dbo].[Customers]([Region]) ON [PRIMARY]

    GO