假设我在SQL数据库中有一些表有很多数据,有些行几乎相同,例如:
|===========================================|
| Message |
|===========================================|
| ... |
|-------------------------------------------|
| account is rejected: <aa> |
|-------------------------------------------|
| account is rejected: <bb> |
|-------------------------------------------|
| mailbox unavailable: 550 550 <1@b.com> |
|-------------------------------------------|
| mailbox unavailable: 550 550 <2@b.com> |
|-------------------------------------------|
| ... |
Run Code Online (Sandbox Code Playgroud)
为了我的目的,第一行是相同的,最后两行是相同的,所以查询应该返回
我想写一个会选择行的查询,在'<'符号之后消除字符,并且会做DISTINCT,但我不知道怎么做SELECT
你能帮我写这样的查询吗?
以下内容从第一个<开始删除所有内容.
它GROUP BY比使用更灵活,DISTINCT但在这种情况下完成相同的事情.
该CASE声明是为了满足消息中没有消息的可能性<.如果总有一个<那么只需使用该ELSE部分.
SELECT
CASE WHEN CHARINDEX('<', Message) = 0 THEN Message ELSE LEFT(Message, CHARINDEX('<', Message)-1)) END AS Message
FROM
yourTable
GROUP BY
CASE WHEN CHARINDEX('<', Message) = 0 THEN Message ELSE LEFT(Message, CHARINDEX('<', Message)-1)) END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |