2011-08-26 71 views
1

我想寫成類似於「click for more」。通過sql查詢切割數據

我不記得這個技術。我可以通過sql查詢。 我想選擇數據的前30個字符。

怎麼樣?

+0

SUBSTRING(數據,1,30)適用於大多數SQL方言。你使用的是什麼版本的SQL? – Sparky

+0

選擇子字符串(例如1,50)作爲cut FROM表。這是真的? –

+0

是的,看起來像你有一個解決方案 – Sparky

回答

4

每個SQL的味道,我曾與有子功能:

OracleMySQLPostgreSQLSQLite

SELECT SUBSTR(column, 1, 30) FROM table; 

SQL ServerMySQL

SELECT SUBSTRING(column, 1, 30) FROM table; 

或者,你可以使用LEFT功能,這是由一些DB的支持:

MySQLSQL Server

SELECT LEFT(column, 30) FROM table; 

當然,你可以使用列別名,像:

SELECT SUBSTR(column, 1, 30) AS partial FROM table; 
SELECT SUBSTRING(column, 1, 30) AS partial FROM table; 
+0

我記得多虧了你.. –

+0

小細節,SQL Server在位置1開始SUBSTRING。0可以工作,但是你會得到少於1的字符 – Sparky

+0

@Sparky謝謝,實際上他們都使用1作爲起始字符; Oracle將0視爲1。 – NullUserException

1

在MySQL中字符串的起點爲1,所以你應該使用

SELECT SUBSTR(column, 1, 30) FROM table; 
1

SELECT LEFT(數據,30)FROM MyTable的