2

好的,我知道我可以在获取时限制表字段的字符大小,但大多数时候 SPLIT 出现在单词的中间:

SELECT id, title, LEFT(contents, 300) AS contents FROM posts

现在,是否可以让 SPLIT 出现在单词之后(在空格处)?

谢谢

4

2 回答 2

0

如果您使用的是 SQL Server,则可以执行以下操作:

SELECT id, title,
       LEFT(contents,
            (case when charindex(contents, ' ', 300) > 0
                  then charindex(contents, ' ', 300)
                  else 300
             end)
           ) AS contents
FROM posts;

在 MySQL 中:

SELECT id, title,
       LEFT(contents,
            (case when locate(' ', contents, 300) > 0
                  then locate(' ', contents, 300)
                  else 300
             end)
           ) AS contents
FROM posts;

其他数据库也有类似的功能。

于 2013-07-21T17:46:21.340 回答
0

如果是 Sql Server,你可以试试这个:

SELECT id, title,
CASE 
WHEN CHARINDEX(' ', title,300) = 301 THEN LEFT(title, 300)
WHEN CHARINDEX(' ', title,300) > 301 then LEFT(title, CHARINDEX(' ', title, 300) - 1)
END AS Contents
FROM posts
于 2013-07-21T17:50:23.490 回答