2015-03-30 58 views
-1

這是試圖運行此查詢時,我得到的錯誤:轉換VARCHAR值‘307 307 307’時轉換失敗「...」到的數據類型爲int

轉換失敗到 數據類型int。

查詢:

select count(sd.mrid) 
    ,replace(replace(substring(sd.mrref_to_mr, charindex('l', sd.mrref_to_mr), len(sd.mrref_to_mr)), 'l', ''), 'x10', '') 
where sd.mrref_to_mr like '%x10' 
group by replace(replace(substring(sd.mrref_to_mr, charindex('l', sd.mrref_to_mr)), 'l', ''), 'x10', '') 
    , imw.mrtitle 
order by replace(replace(substring(sd.mrref_to_mr, charindex('l', sd.mrref_to_mr)), 'l', ''), 'x10', '') desc 

,它的抱怨領域是這樣的:

L5587x6 5587或將有類似5587L5587x6

我需要的只是5587但我需要它看起來像一個數值。我只需要匹配到另一個領域是MRID,它是一個int

+0

隨着最近一次對您的查詢的編輯,您不再有一個from子句。 (在這裏我並不想挑剔,但是如果你要在你的查詢中嘗試一組相當複雜的嵌套字符串函數,你真的必須注意細節。你的兩個版本我看到的查詢都有基本的語法錯誤,沒有人能夠在沒有看到實際的查詢失敗的情況下幫助你,而不是語法錯誤的類似查詢。) – DeadZone 2015-03-31 18:58:48

回答

0

你有你的SELECT子句中不匹配的括號。格式化它看起來像:

select count(sd.mrid) , 
     replace(
      replace(
       substring(sd.mrref)to_mr, charindex('l', sd.mrref_to_mr), len(sd.mrref_to_mr) 
      ), 'l', '' 
     ), 'x10', '') 

我想你可能已經削減了一個功能,只能刪除它的一部分。

+0

substring(sd.mrref)to)mr應該已經子字符串(sd.mrref_to_mr – RBC 2015-03-31 15:41:46

+0

我會盡我所能更新我的答案。現在發佈的查詢有不同的語法錯誤。 – DeadZone 2015-03-31 19:00:18

相關問題