2016-07-13 79 views
0

我試圖使用子查詢更新表中的記錄,但我無法做到這一點。子查詢返回的值超過1。不允許當子查詢遵循=,!=,<, <= , >,> =或當子查詢用作表達式

更新員工設置彈頭=( 選擇SUBSTRING(Icc.Name,CHARINDEX( '',Icc.Name + 1,LEN(名稱)) 從C類,Import_Category Icc的 其中c.Name像IC卡。名稱)

類別和進口分類表中有名稱的列。我做錯了嗎?請幫我。

+0

*我在做什麼錯了?*你的意思是旁邊沒有閱讀消息中的單詞,它完全告訴你**你做錯了什麼? *子查詢返回的值超過1 *意義非常明確。您的子查詢返回了多個值。 –

回答

0

錯誤信息本身就已說明,你的子查詢比一個元素返回MOER,你必須確保你的子選擇只返回1行。

用途示例:

update Employee 
set Slug= (
    select top 1 SUBSTRING(Icc.Name,CHARINDEX(',',Icc.Name+1,len(Name)) 
    from Category C, Import_Category Icc 
    where c.Name like Icc.Name) 
+0

這將在語法上起作用,但是「TOP 1」不能保證使用* correct *行。爲了排除這一點,我們需要更多關於查詢目的的信息。 – yelxe

+0

的確,我舉了一個例子來說明問題。他肯定不得不根據自己的業務需求進行調整,因爲他們沒有在他的問題中表達出來 – Massanu

相關問題