你好,我想向问个问题,就是有个SQL中Rtrim函数的用法

RTRIM(<c1>,<c2> ) takes two arguments, where c1 and c2 are character
strings. This function returns c1 without any trailing characters that appear
in c2. If no c2 characters are trailing characters in c1, then c1 is returned
unchanged. c2 defaults to a single space.
大家对Rtrim舍去字符串右边的空字符串是毫无疑议的
有疑问的应该是右边是字符串如何处理的。
如:
SELECT RTRIM('Mississippi','ip') test1,RTRIM('Rpadded ') test2 ,RTRIM('Mississippi','sip') test3 FROM dual;
结果为:
test1 test3 test3
Mississ Rpadded M
test1的实现
首先从字符串'Mississippi'右边查找'ip'中的任意字符,此例为'i','p',直到'Mississippi'右边不为'i'和'p'字符为止,所以结果应该是Mississ
test2的实现
去掉字符串的空格
test3的实现
实现方法同test1首先从字符串'Mississippi'右边查找'sip'中的任意字符,此例为's','i','p',直到'Mississippi'右边不为's'、'i'和'p'字符为止,所以结果应该是M
可以通过下例进一步了解Rtrim函数
SELECT RTRIM('Mississippi','Misp') test1,RTRIM('Mississippi','i') test2 FROM dual;
test1 test2
Mississipp
*****************************************************************************************
上面是你的回答,我想问的是select 语句中最后的dual是个什么东西,是一张表吗?
另外,SELECT RTRIM('Mississippi','ip') test1,RTRIM('Rpadded ') test2 ,RTRIM('Mississippi','sip') test3 FROM dual;这个语句在哪里用,直接进入mysql的命令行(cmd窗口)就可以运行吗??

dual是个虚拟表。
这个是oracle的用法。
如果是mysql,则不用使用 from dual; 直接SELECT RTRIM('Mississippi','ip') test1,RTRIM('Rpadded ') test2 ,RTRIM('Mississippi','sip') test3 就可以。

直接进入mysql的命令行(cmd窗口)就可以运行追问

怎么不行啊??能帮我分析一下吗?谢谢你啊

追答

我在MYSQL里试了一下,RTRIM不支持你的这个用法。你的这个用法可能是ORACLE的。
在MYSQL里,只支持 select rtrim('ddd ') ;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-25
去掉一个字符串的尾部空格字符,并返回无尾部空格的字符。追问

谢谢你哦,函数的意思我能看懂,就是不知道具体怎么用,比如在cmd命令行窗口中怎么使用??具体怎么用,运行一下?

相似回答