我如何从多行获取单个数据短信问题

问题描述

要做聊天选项。我的数据库如下--

id        from_sms       to_sms       body_sms       time
1        1000           2000          hi                timestamp
2        1000           2000          how r u?          timestamp  
3        2000           1000          fine. u?          timestamp
4        1000           2000          I am fine.        timestamp
5        3000           1000          hey r u there?    timestamp
6        1000           3000          bg Now.           timestamp
7        4000           1000          I am new          timestamp

这里- 1000 = 我 2000 = X 3000 = Y 4000 = Z

现在我只想像我们的手机节目一样显示数字

Message
-------
2000
3000
4000

我如何执行我的要求?

解决方法

您似乎想要展示与给定用户交互的所有不同数字。使用 union:

可能会更简单、更有效地完成此操作
select from_sms as contact from mytable where to_sms = 1000
union  -- on purpose: removes duplicates
select to_sms from mytable where from_sms = 1000

另一种方法是使用条件表达式:

select distinct case when from_sms = 1000 then to_sms else from_sms end as contact
from mytable
where 1000 in (from_sms,to_sms)
,
SELECT DISTINCT CASE WHEN from_sms = @my_sms 
                     THEN to_sms 
                     ELSE from_sms END AS contact
FROM source_table

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...