如何在Oracle Query中執行此操作?這就是說我們想要那個'1'的記錄在該列的大部分位置。如何在Oracle中做簡單子串
AND substring(convert(varchar,TR.MENU_ID_VALUE), 1, 1) = '1'
如何在Oracle Query中執行此操作?這就是說我們想要那個'1'的記錄在該列的大部分位置。如何在Oracle中做簡單子串
AND substring(convert(varchar,TR.MENU_ID_VALUE), 1, 1) = '1'
的convert
function函數將來自一個字符的字符串設置到另一個。語法是convert(<string>, <to character set>, <from character set>)
此外,substring
不是Oracle函數,它是substr
。
如果你不需要轉換字符串,那麼and substr(tr.menu_id_value,1,1)
會讓你最左邊的字符。
如果您確實想要轉換字符集,那麼完整列表是available in the documentation,或者您可以查詢v$nls_valid_values
。舉例來說,如果你從WE8MSWIN1252 (Windows code-page 1252)轉換爲AL32UTF8 (UTF-8)那麼你的狀態會變成:
and substr(convert(tr.menu_id_value,'AL32UTF8','WE8MSWIN1252'),1,1) = '1'
從您的評論我猜convert()
是SQL-Server函數數據類型之間的轉換。在這種情況下,Oracle相當於to_char
。雖然Oracle會隱式執行轉換,但它總是總是最好使用to_char
並明確轉換;給你:
and substr(to_char(tr.menu_id_value),1,1) = '1'
附帶的確切甲骨文相當於是cast()
。嚴格地說,如果你想使用format model,從而substr(cast tr.menu_id_value as varchar2(10)),1,1)
也給你,你有什麼假設tr.menu_id_value
長度後to_char()
應該將所用小於或等於10
使用SUBSTR
AND substr(tr.menu_id_value,1,1) = '1'
本應該說是在sql server中。 –