【SQL Server】論理演算子 AND・OR の使い方
WHERE 句 の中で使う 論理演算子 AND と OR について説明します。
内容
事前準備としてテーブルを作成します。
CREATE TABLE [dbo].[T1](
[Id] INT ,
[Name] NVARCHAR(20) ,
[Birth] INT ,
[Death] INT ,
[Gender] CHAR(2) ,
)
INSERT INTO T1(Id,Name,Birth,Death,Gender) VALUES
(1,'芥川龍之介',1892 ,1927,'男'),
(2,'阿部公房',1924 ,1993,'男'),
(3,'有島武郎',1878 ,1923,'男'),
(4,'江戸川乱歩',1894 ,1965,'男'),
(5,'川端康成',1899 ,1972,'男'),
(6,'菊池寛',1888 ,1948,'男'),
(7,'司馬遼太',1923 ,1996,'男'),
(8,'太宰治',1909 ,1948,'男'),
(9,'樋口一葉',1872 ,1896,'女')
AND(論理積)
論理積で複数の条件を指定する場合は、AND を使います。
生れた年が1900年以降かつ、没年1990年以前のみ取得
SELECT * FROM T1
WHERE
1900 <= Birth
AND Death <= 1990
Id | Name | Birth | Death | Gender |
8 | 太宰治 | 1909 | 1948 | 男 |
OR(論理和)
論理和で複数の条件を指定する場合は、OR を使います。
生れた年が1900年以降または、性別が女のみ取得
SELECT * FROM T1
WHERE
1900 <= Birth
OR Gender = '女'
Id | Name | Birth | Death | Gender |
2 | 阿部公房 | 1924 | 1993 | 男 |
7 | 司馬遼太 | 1923 | 1996 | 男 |
8 | 太宰治 | 1909 | 1948 | 男 |
9 | 樋口一葉 | 1872 | 1896 | 女 |
NOT(論理否定)
論理否定の条件を指定する場合は、NOT を使います。
比較演算子の <> でも同じ結果になります。
性別が’女’以外取得
SELECT * FROM T1 WHERE NOT Gender = '女'
Id | Name | Birth | Death | Gender |
1 | 芥川龍之介 | 1892 | 1927 | 男 |
2 | 阿部公房 | 1924 | 1993 | 男 |
3 | 有島武郎 | 1878 | 1923 | 男 |
4 | 江戸川乱歩 | 1894 | 1965 | 男 |
5 | 川端康成 | 1899 | 1972 | 男 |
6 | 菊池寛 | 1888 | 1948 | 男 |
7 | 司馬遼太 | 1923 | 1996 | 男 |
8 | 太宰治 | 1909 | 1948 | 男 |
コメント