2011-08-26 72 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的