iT邦幫忙

0

SQL-字串中截取字元的指令

sql

大家好

小弟忘記如果在一個欄位中要把第M碼到第N碼的字元抓出來的話要使用那一個SQL指令?謝謝!!

12
tanpen
iT邦研究生 3 級 ‧ 2012-06-20 14:49:47
最佳解答

select SUBSTRING(欄位,從第M碼,取到第N碼)
from 表格名

12
ted99tw
iT邦高手 1 級 ‧ 2012-06-20 14:51:56

試試:
SELECT SUBSTR(field_name, M, N) FROM table_name

8
ihon822
iT邦研究生 2 級 ‧ 2012-06-20 14:52:06
看更多先前的回應...收起先前的回應...
賽門 iT邦超人 1 級 ‧ 2012-06-20 19:46:09 檢舉

好樣的~~一個簡單問題來三個不同答案....

總裁 iT邦好手 1 級 ‧ 2012-06-20 20:04:13 檢舉

唉....怎麼沒人問問版主是用哪一種資料庫呀??

cdfu提到:
唉....怎麼沒人問問版主是用哪一種資料庫呀??

因為
會這樣問問題的
會問這種問題的
十之八九是Microsoft SQL Server
落寞

ihon822 iT邦研究生 2 級 ‧ 2012-06-21 10:48:27 檢舉

Sorry.. 這是MySQL的語法...

14
賽門
iT邦超人 1 級 ‧ 2012-06-20 20:19:44

版大的問題是從一個欄位中取得由位置M到N的子字串...

在SQL Server中的指令是SUBSTRING(Expression, Start, Length).

在Oracle中的指令是substr(Expression, Start, Length).

從以上兩者都可以看出無法直接指定由拉置M到N的子字串, 那要如何做?

<pre class="c" name="code">SQL Server: 
SELECT SUBSTRING(FieldName, M, N-M+1) FROM TableName
Oracle:
Select SubStr(FieldName, M, N-M+1) From TableName

至於MID()指令, 是在VBA中使用的指令, 在SQL Server或PL/SQL中都沒有這樣的用法. 如果版大指的是VBA, MID()的用法也是
MID(Expresssion, Start, Length)
所以要寫成:
SET sVar = MID(Expression, M, N-M+1)
其中sVar是字串變數.

ted99tw iT邦高手 1 級 ‧ 2012-06-20 20:28:37 檢舉

讚+1讚

我要發表回答

立即登入回答