sql執行錯誤當沒有用EXISTS引入子查詢時在選擇列表中只能指定表示式

2022-03-05 07:05:25 字數 2733 閱讀 4966

1樓:4終

因為set fnote= 這後面是隻能給一個值得。現在估計有複數個,所以有問題。解決方法如下:

1、建立一個臨時表,ifobject_id('tempdb..#tmp1') is not null drop table #tmp1; create table #tmp1(col1 varchar(50),col2 varchar(200));。

2、往臨時表中插入幾行測試資料,用於exists使用insert into #tmp1(col1, col2) values('code1', '1');insert into #tmp1(col1, col2) values('code10', '2');insert into #tmp1(col1, col2) values('code100', '3');。

3、查詢臨時表中的測試資料select * from #tmp1;。

4、如果在exists中查詢的結果是null,最終exists返回的仍然是true。例如,下面的語句返回的就是整個表的結果select * from #tmp1 where exists(select null);。

5、使用子查詢結合exists使用,當exists返回true的時候,就返回指定結果select *from #tmp1where exists(select 1 from #tmp1 where col2 = 2)and col1 = 'code1'。

6、使用子查詢結合exists使用,當exists返回false的時候,就不會返回指定的結果。例如,將上面sql子查詢的col2從等於2,改成等於20select *from #tmp1where exists(select 1 from #tmp1 where col2 = 20)and col1 = 'code1'。

7、在儲存過程中,經常會使用exists判斷條件是否成立,例如,判斷臨時表中是否存在記錄if exists(select 1 from #tmp1)print '存在資料'elseprint '不存在資料'。就完成了。

2樓:匿名使用者

是因為 你的set fnote= 這後面是隻能給一個值得。現在估計有複數個,所以有問題。

如果需要動態更新,那最後的那句where fstatus=0 ,也需要和你的子查詢一樣的修改。

現在條件比較少,就會變成,update 的where指定後,資料很多。而更新的值也很多,那就是多對多,sql就不知道更新哪個值了。

包exsits的原因,是使用這個函式,能限定到該行,而使用in,只能是複數個。

這個sql語句提示:當沒有用 exists 引入子查詢時,在選擇列表中只能指定一個表示式.請高手解答。語句如下

3樓:匿名使用者

是因為 你的set fnote= 這後面是隻能給一個值得。現在估計有複數個,所以有問題。

如果需要動態更新,那最後的那句where fstatus=0 ,也需要和你的子查詢一樣的修改。

現在條件比較少,就會變成,update 的where指定後,資料很多。而更新的值也很多,那就是多對多,sql就不知道更新哪個值了。

包exsits的原因,是使用這個函式,能限定到該行,而使用in,只能是複數個。

急!sql錯誤:當沒有用 exists 引入子查詢時,在選擇列表中只能指定一個表示式。

4樓:野草

update doc_tab set df=(select words ,count(file_id) from doc_tab group by words)

這個 你 要改欄位是 df 而你查詢的是兩個欄位words ,count(file_id) 一個欄位對應兩個 所以報錯 而且你 select words from doc_tab group by words 這個查詢是不是多行呀

你更新一行 不能有多條記錄的 你可以這樣用函式 max min count 之類的保證只能一行

這樣就可以了

update doc_tab set df=(select count(file_id) from doc_tab )

5樓:a如風c似影

sql中=右邊只能是一個固定的值,=(select words ,count(file_id) from doc_tab group by words)

你查詢出來的有words和一個count值,你讓人家取那個?沒有那麼智慧的。直接貼需求吧。。然後幫你寫一個

「當沒有用 exists 引入子查詢時,在選擇列表中只能指定一個表示式.」這句話時什麼意思?

6樓:勇敢的樵夫

你後面不能用* 號的,因為studentid只有一個,in裡面的欄位也只能有一個,這樣就可以了

select * from grade

update grade

set grade=grade+5

where studentid in(select studentid from student

where studentid like'%[3,6]')

當沒有用 exists 引入子查詢時,在選擇列表中只能指定一個表示式。

當沒有用 exists 引入子查詢時,在選擇列表中只能指定一個表示式.

7樓:書生無文

a表 b表沒有任何關係?

select a.id,b.id.b.name from a,b

讀書到底有沒有用,讀書到底有沒有用?

當然有用啊,可以提升自己的綜合能 讀書到底有沒有用?星知計劃 老是有人說讀書無用,那麼讀書真的無用嗎?有用的,讀書有幾種好處 1.讀書可以增加一個人談吐的質量和深度。讀書,可以讓你掌握知識,而知識就像呼吸 一樣,吐納之間,可以見人的氣質與涵養。讀書,在某種程度上,可以讓你獲得優越感,而優越感某種程度...

天窗有沒有用

一輛車裡擠的人越多,車內的空氣就越渾濁。開啟側窗可起到換氣的作用,可車輛在高速行駛時的風噪聲讓人難以忍受,坐在後排座位的人也會被側窗的風吹得睜不開眼。其實,用天窗來對付這些問題會更輕鬆一些。功用一 打破傳統的換氣模式 多一個 窗 自然多了一個通風口,因此開啟天窗,可以增加車內空氣流通的速度。尤其是在...

PMP有沒有用

pmp是非常有用的。首先,pmp是由美國專案管理協會pmi發起的,嚴格評估專案管理人員知識技能是否具有高品質的資格認證考試。其目的是為了給專案管理人員提供統一的行業標準。作為專案管理資格認證考試,已在國際上樹立了其權威性。其次,在國內專案型企業中認可度非常高,很多企業pmp認證作為專案經理上崗的必備...