我有行的表:簡單的重構SQL查詢
ID CountryCode Status
----------- ----------- -----------
2 PL 1
3 PL 2
4 EN 1
5 EN 1
,並通過查詢
SELECT *
FROM [TestTable]
WHERE Status = 1 AND CountryCode NOT IN (SELECT CountryCode
FROM [TestTable]
WHERE Status != 1)
我得到它有沒有狀態值都countrycodes = 2
ID CountryCode Status
----------- ----------- -----------
4 EN 1
5 EN 1
我覺得這個查詢可以更簡單,更清晰。
我怎樣才能改變呢?
問候
編輯
PL不能在結果,因爲有狀態的記錄2
編輯
腳本來創建和填充表:
USE [DatabaseName]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TestTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CountryCode] [nvarchar](2) NOT NULL,
[Status] [int] NOT NULL
) ON [PRIMARY]
INSERT INTO dbo.TestTable
(CountryCode, Status)
VALUES ('PL', -- CountryCode - nvarchar(2)
1 -- Status - int
)
INSERT INTO dbo.TestTable
(CountryCode, Status)
VALUES ('PL', -- CountryCode - nvarchar(2)
2 -- Status - int
)
INSERT INTO dbo.TestTable
(CountryCode, Status)
VALUES ('EN', -- CountryCode - nvarchar(2)
1 -- Status - int
)
INSERT INTO dbo.TestTable
(CountryCode, Status)
VALUES ('EN', -- CountryCode - nvarchar(2)
1 -- Status - int
)
爲1和2的唯一狀態......或者還有沒有其他太多最小/最大應用程序,否則可能會失敗...... – DRapp 2011-06-08 18:29:52
@DRapp 5是一個範圍 – user278618 2011-06-08 18:32:51