【发布时间】:2016-09-18 04:06:28
【问题描述】:
我有一个包含以下信息的表格:客户、行、文本。 line 的值是 1-5,对应于一周中的几天,Mon-Fri。我们可能会看到如下数据:
|Customer | Line | Text |
|123 | 1 | 018 |
|123 | 3 | 030 |
|234 | 2 | 129 |
周一和周三可以看到客户 123,周二可以看到客户 234。
我想为每个客户生成一行,如下所示:
123 Mon Wed
234 Tue
我可以使用
select Customer, DaysOfWeek =
case text
when '' then ' '
else 'Tue '
end
from routing where customer = %s and line = '2'
当 %s = '234' 时会生成“Tue”。
当我堆叠其中的五个,每个有一个由 UNION 分隔的行号 1 到 5 时,我会为客户 123 得到两个单独的行,分别是周一和周三。我无法将所有选择的结果放入语句放在一行上。我已经尝试过 CONCAT、&、+.... 我卡住了。
【问题讨论】:
-
你使用的是什么 SQL?
-
您使用的“Microsoft SQL”是指 Microsoft SQL Server 吗?还是您指的是 Microsoft Access SQL ?请添加
sql-server或ms-access标签以澄清 - 谢谢! -
在我去参加我儿子的棒球比赛之前快速思考一下……您可以编写五个查询,每个查询代表一天。查询将使用 where 子句。然后,您将所有五个查询连接在一起以生成最终结果。我一回到家就会写下这些问题作为答案。
-
@Ghost 我正在尝试在应用程序上配置数据输出。我不知道他们在应用程序上使用什么 SQL。我们的服务器上有 Microsoft SQL Server,用于检查源数据库。我们被告知使用 SybaseCentral UltraLite 查看我们从下载的“容器”(.ipa 文件及其数据)中提取的数据库。在 Ultralite 中运行的查询通常会在应用程序中返回良好的结果,但并非总是如此。
-
@TychaBrahe 您的查询是在“应用程序”中工作还是您刚刚在 Ultralite 中进行了测试?我在想,如果您将别名更改为末尾并使用“As”关键字,Serg 的 SQL 可能会起作用。
标签: sql sql-server select concat