Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何修剪数据库中的字符串?_Sql_String_Trim - Fatal编程技术网

Sql 如何修剪数据库中的字符串?

Sql 如何修剪数据库中的字符串?,sql,string,trim,Sql,String,Trim,我有一个数据库表(名为firsttable),上面有这样的单词和分数 words score book's 2 book 5 pen 4 bag 6 books 7 words score book 14 pen 4 bag 6 我想做的是,因为book是book's和books的根,所以我想从表中删除book's和books,并将它们的分数添加到word bo

我有一个数据库表(名为firsttable),上面有这样的单词和分数

words     score
book's      2
book        5
pen         4
bag         6
books       7
words     score

book        14
pen         4
bag         6
我想做的是,因为book是book's和books的根,所以我想从表中删除book's和books,并将它们的分数添加到word book上。但是对于copy's这样的单词,它不会起作用。但这并不重要。最后,我希望有这样的数据库表

words     score
book's      2
book        5
pen         4
bag         6
books       7
words     score

book        14
pen         4
bag         6

是否可以*

使用通配符%作为单词book的后缀。类似于

SELECT score FROM MyTable where words LIKE book%

使用复数词,然后将它们按单数形式分组,这总是非常棘手的。我曾经写过一个函数,帮助我解决奇点

IF(RIGHT(@input, 2) = 'es')
    SELECT LEFT(@input, LEN(@input) - CHARINDEX('es', REVERSE(@input)))
ELSE IF (RIGHT(@input, 1) = 's')
    SELECT LEFT(@input, LEN(@input) - CHARINDEX('s', REVERSE(@input)))

以“s”或“es”结尾的单词也有例外,但这对您的书籍很有用。

哪种SQL方言?您如何确定要合并哪些词?例如,既然“book”和“bag”都以“b”开头,为什么不将它们加在一起?那么“Theater”、“Theory”和“the”呢?它们是否都被简化为“the”?如果没有一些规则,这是不可能的,你必须确定一种方法来知道哪些单词与什么相关。我可以建议创建一个包含两列(根和子列)的临时表,并自己添加关系,然后使用它来执行您的请求。我不能使用像contain这样的函数吗?规则是,如果数组中的任何单词(不是单词的一部分!)包含在其他单词中,则将该单词切掉并删除其他单词。我们将此语句推广到所有数据库中,因为这本书只是一个示例,我可以使用
从MyTable中选择LEFT(单词,3)
。如果设置为3,则会将boots添加到与books相同的查询中,但如果设置为4,则笔会出现问题。