我曾經做了10多年的MIS開發,對SQL語句有一定的經驗,我來回答以下這個問題,我理解你說的SQL語句反向選擇應該是WHERE語句中的條件吧。這個問題不太好說,舉幾個例子來說明。
比如有一個表,叫做員工資訊表,名字叫ygxxb,欄位簡單說明如下:
欄位名 欄位描述型別
ygid員工號 字元型
ygxm 姓名 字元型
xb 性別 字元型
csrq 出生日期 日期型
hyzt 婚姻狀態 字元型 (未婚、已婚、離婚、喪偶)
查詢出在1980年之後(含1980年)出生的員工資訊,可以這樣寫。
select * from ygxxb where csrq>="1980-01-01"
取反語句如下:
select * from ygxxb where csrq<"1980-01-01"
查詢出在1980-07-01(含當天)到1985-10-30(含當天)之間 出生的員工資訊,可以這樣寫。
select * from ygxxb where csrq>="1980-07-01" and csrq<="1985-10-30"
select * from ygxxb where csrq<"1980-07-01" or csrq>"1985-10-30"
查詢出‘未婚’和‘已婚’的員工資訊,可以這樣寫。
select * from ygxxb where hyzt in ("未婚"、"已婚")
select * from ygxxb where hyzt not in ("未婚"、"已婚")
如何寫SQL的取反語句,還是要結合實際的需求來寫,而且一般來說也可以有多種寫法,只要多加練習,你一定可以做到的。
我曾經做了10多年的MIS開發,對SQL語句有一定的經驗,我來回答以下這個問題,我理解你說的SQL語句反向選擇應該是WHERE語句中的條件吧。這個問題不太好說,舉幾個例子來說明。
比如有一個表,叫做員工資訊表,名字叫ygxxb,欄位簡單說明如下:
欄位名 欄位描述型別
ygid員工號 字元型
ygxm 姓名 字元型
xb 性別 字元型
csrq 出生日期 日期型
hyzt 婚姻狀態 字元型 (未婚、已婚、離婚、喪偶)
例子一:查詢出在1980年之後(含1980年)出生的員工資訊,可以這樣寫。
select * from ygxxb where csrq>="1980-01-01"
取反語句如下:
select * from ygxxb where csrq<"1980-01-01"
例子二:
查詢出在1980-07-01(含當天)到1985-10-30(含當天)之間 出生的員工資訊,可以這樣寫。
select * from ygxxb where csrq>="1980-07-01" and csrq<="1985-10-30"
取反語句如下:
select * from ygxxb where csrq<"1980-07-01" or csrq>"1985-10-30"
例子三:
查詢出‘未婚’和‘已婚’的員工資訊,可以這樣寫。
select * from ygxxb where hyzt in ("未婚"、"已婚")
取反語句如下:
select * from ygxxb where hyzt not in ("未婚"、"已婚")
如何寫SQL的取反語句,還是要結合實際的需求來寫,而且一般來說也可以有多種寫法,只要多加練習,你一定可以做到的。