關於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組')

這樣就行了

詩名裡帶巍字的詩詞有哪些,關於文學的古詩詞

籍素芹譚汝 推薦 李煜 虞美人 浪淘盡 烏夜啼 都是我的最愛 李清照 聲聲慢 一枝梅 漁家傲 我覺得納蘭性德的詞不錯! 考振英羽鸞 吳降雪的 四季迴文詩 好經典的哦!鶯啼岸柳弄春晴夜月明 香蓮碧水動風涼夏日長 秋江楚雁宿沙洲淺水流 紅爐透炭炙寒風御隆冬 每句拆開就是 春詩 鶯啼岸柳弄春晴夜月明 鶯啼...

關於天氣的諺語 至少5條

有關天氣的諺語 一 雲下山,地不幹。雲絞雲,雨淋淋。黑雲接駕,不陰就下。雲低要雨,雲高轉晴。天色亮一亮,河水漲一丈。紅雲變黑雲,必有大雨淋。天上豆英雲,地上晒死人。日落烏雲漲,半夜聽雨響。日落胭脂紅,非雨便是風。日落雲裡走,雨在半夜後。天上跑臺雲,地上雨淋淋。西北起黑雲,雷雨必來臨。雲自東北起,必有...

關於電腦主機板記憶體條,電腦主機板和硬碟 記憶體條要什麼樣的才配合?

如果說需要進行對應的一些主機板記憶體條的使用的,那你是可以檢視一下電腦的一些內建的使用狀態說明,一般情況下的話裡面的一些記憶體條都是需要進行對應的網路使用狀態的登入。這個能不能升級呢,不是說看這,而是看電腦裡邊有沒有放記憶體條的位置,如果說沒有位置的話,那就是加不了了。電腦的主機板記憶體條的話還是不...