好的,我知道我可以在获取时限制表字段的字符大小,但大多数时候SPLIT都在这个单词的中间:
SELECT id, title, LEFT(contents, 300) AS contents FROM posts
现在,是否有可能让SPLIT在单词后面(空格处)?
谢谢
答案 0 :(得分: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;
其他数据库也有类似的功能。
答案 1 :(得分: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