我試圖將此查詢從Access數據庫轉換爲在SQL Server 2008中工作,並陷入困境。我知道存在差異,但我不確定發生了什麼,顯然我不擅長這一點。 任何幫助,將不勝感激。訪問查詢與SQL Server 2008查詢
訪問
Mid(Trim([SC01039]),
InStrRev(Trim([SC01039])," ")+3,4)
AS ProductType
SQL Server 2008的(這是我試圖改變它)
Substring(RTrim(LTrim([SC01039])),
Right(RTrim(LTrim([SC01039])),
CHARINDEX(' ',RTrim(LTrim([SC01039]))))+3,4)
AS ProductType
我收到的錯誤是
「轉換失敗當轉換nvarchar值'L318'到數據 int類型「。
爲什麼它試圖將結果文本轉換爲整數?我的假設是查詢說:「找到最接近字符串右邊的空間位置,現在將3加到該位置,並給我接下來的4個字符。」這似乎是與數據,而不是查詢(如果沒有空間?還是字符串爲空它能做什麼?)我不知道一個問題...
難道我連親近? :P
有在SC01039混合字符,但是這是一個樣本:
SC01039 : Expected Output
------------- : ---------------
QC 06999911 : 9999
SW 12FMT116 : FMT1
26RMF399 : RMF3
08 : [empty]
[empty] : [empty]
顯然它始終是4個字符,起始物爲3-到找到的第一個空間的右側(搜索從右側的空間-向左)。 SC01039中的一些數據具有多個空格(即:09 TVR 012 2,在這種情況下,它不返回任何內容,我相信這是可以的)。
顯示數據。目前在'SC01039'列'Charindex'部分出了問題 –
感謝您的幫助;) –