關於insert into裡,帶條件判斷的sql語句怎麼寫

時間 2021-07-18 07:44:03

1樓:四舍**入

1、方法一

if not exists(select * from table_name where filed1 = 1 ) then

insert into table_name values(1

2、將要插入的資料先寫入臨時表,然後用

insert into table_name

select * from #temp_table a left join table_name on a.filed1 = b.field1 where

b.filed1 is null

擴充套件資料:

基本語句

1、資料記錄篩選:

sql="select * from 資料表 where欄位名 = 欄位值 order by 欄位名[desc]"(按某個欄位值降序排列,預設升序asc)。

sql="select * from 資料表 where 欄位名 like '%欄位值%' order by 欄位名 [desc]"

sql="select top 10 * from 資料表 where欄位名=欄位值 order by 欄位名 [desc]"

sql="select * from 資料表 where欄位名 in ('值1','值2','值3')"

sql="select * from 資料表 where 欄位名 between 值1 and 值2"

sql="select 列名1,列名2 from 資料表 where 欄位名=欄位值 group by 列名1,列名2 " (group by 用來分組,並且只有出現自group by 中的列名,才允許出現在select 語句中)。

2、更新資料記錄:

sql="update 資料表 set欄位名=欄位值 where 條件表示式"

sql="update 資料表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件表示式"

3、刪除資料記錄:

sql="delete from 資料表 where 條件表示式"

sql="delete from 資料表" (將資料表所有記錄刪除)

2樓:

insert into table_name values() 這個語句是不能做判斷的,但可以建議你下面的語法實現:

if not exists(select * from table_name where filed1 = 1 ) then

insert into table_name values(1);

或者將你要插入的資料先寫入臨時表,然後用

insert into table_nameselect * from #temp_table a left join table_name on a.filed1 = b.field1 where b.

filed1 is null

3樓:匿名使用者

if not exists(select * from t where field1=插入值)// 判斷插入值是否不存在,不存在則執行插入

begin

insert into t(field1)values(插入值)end

4樓:釗悌

方法1:把field1設定為唯一列就可以。

方法2:如果非要用sql語句來寫的話,給個例子,看能否滿足樓主要求:

--語句 (@a為新值)

insert into t select @a where @a not in(select field1 from t);

***********************************===

案例:create table tt(c1 int);

insert into tt values(1);

insert into tt values(2);

--測試1

insert into tt select 4 where 4 not in(select c1 from tt);

(1 行受影響)

--測試2

insert into tt select 2 where 2 not in(select c1 from tt);

(0 行受影響)

5樓:匿名使用者

merge into t t1

using (select a,b from t where t.a='1001') t2

on ( t1.a=t2.a)

when not matched theninsert (a,b) values('1001',2);

類似這種的寫法,匹配不上才讓插入進去

6樓:

如果操作頻繁,倒不如加個觸發器

create trigger [dbo].[t_trigger_feild1_ins] on [dbo].[t]

instead of insert

asdeclare @field1value varchar(500)

select @field1value=field1 from inserted

if not exists(select * from t where field1=@field1value)

begin

insert into t(field1) values(@field1value)end

7樓:匿名使用者

insert into table(field1) select '你要插入的值' from table where field1 not in (select field1 from table)

如何在sql中設定插入時判斷表中是否有該資料?

8樓:匿名使用者

是這樣的,insert into...values...語句不允許和where子句一起使用的(子查詢追加insert into...

select...則可以在子查詢裡使用where子句)。要實現題主的這個需求,只能通過應程式端程式設計或在資料庫端的儲存過程裡解決。

補充回答

後來我嘗試了一下用 insert into...select..變通一下單憑sql也可以解決,我在access裡測試這個思路通過了。

由於身邊沒有mssql環境,請題主測試下列**,我想應該也是可以的

insert into tbteam_daily select

top 1 n'2011-12-2',n'3組',n'',n'23' from tbteam_daily

where not exists (select 1 from tbteam_daily

where tdate = n'2011-12-2' and teamname = n'4組');

9樓:匿名使用者

不用,其實可以這樣做

insert into tbteam_dailyselect n'2011-12-2',n'3組',n'',n'23'

where not exists (select * from tbteam_daily where tdate = n'2011-12-2' and teamname = n'4組')

這樣就行了

關於excel條件格式的,關於excel條件格式的問題

excel中條件格式的使用方法 你沒有說a1大於1200怎麼辦,如果a1大於1200,b1顯示還是1200,公式這樣設定 max 600,min 1200,ceiling a1,200 如果有把握a1不可能輸入大於1200的資料,公式可以簡化成 max 600,ceiling a1,200 if a...

兩條關於理想的名言警句有哪些,兩條關於理想的名言警句

荒草叢生 人生應該如蠟燭一樣,從頂燃到底,一直都是光明的。蕭楚女 路是腳踏出來的,歷史是人寫出來的。人的每一步行動都在書寫自己的歷史。吉鴻昌 理想如星辰 我們永不能觸到,但我們可像航海者一樣,借星光的位置而航行。史立茲 理想並不能夠被現實征服,希望的火花在黑暗的天空閃耀。巴金 一種理想,就是一種力!...

有關於勵志的名言警句(兩條),兩條關於理想的名言警句

有志者自有千計萬計,無志者只感千難萬難。我成功因為我志在成功! 少壯不努力,老大徒悲傷。長歌行 天才是百分之一的靈感加百分之九十九的汗水。愛迪生 1 人生舞臺的大幕隨時都可能拉開,關鍵是你願意表演,還是選擇躲避。2 能把在面前行走的機會抓住的人,十有 都會成功。兩條關於理想的名言警句 精銳教育 理想...