Picture of what i tried with results有没有人能解释一下,当使用相同的POSITION时,为什么LEFT语法和RIGHT语法会得到不同的结果?即使在RIGHT结果列中,几乎每个条目都是不同的,为什么会这样?
我附上了我所做的事情的图片。引用的列充满了电子邮件。我使用的位置是'@'。与左语法,我想拉的人的名字和与右我想拉的电子邮件地址的左边。
我是新来的,使用postgres SQL试图学习,我使用的信息只是为了学习目的。
提前感谢大家!
Picture of what i tried with results有没有人能解释一下,当使用相同的POSITION时,为什么LEFT语法和RIGHT语法会得到不同的结果?即使在RIGHT结果列中,几乎每个条目都是不同的,为什么会这样?
我附上了我所做的事情的图片。引用的列充满了电子邮件。我使用的位置是'@'。与左语法,我想拉的人的名字和与右我想拉的电子邮件地址的左边。
我是新来的,使用postgres SQL试图学习,我使用的信息只是为了学习目的。
提前感谢大家!
1条答案
按热度按时间d7v8vwbk1#
根据Postgres docs,
right(str text, n int)
-返回字符串中的最后n个字符。当n为负数时,返回除第一个字符以外的所有字符|n|字符.left(str text, n int)
-返回字符串中的前n个字符。当n为负数时,返回除最后一个字符以外的所有字符|n|字符.提取:
第一部分(前n个字符减去“@”字符):
POSITION('@' IN email_id) - 1
第二部分(长度最后n个字符):
LENGTH(email_id) - POSITION('@' IN email_id)
字符串