SQL Server在一周中的几天内将列转换为具有特定格式的行
我将数据存储在SQL Server中,如下所示,每周每天都有存储开放时间。我们大约有1000家商店。下面是示例数据的存储方式 现在我想以这种格式生成数据 以下是基本查询:SQL Server在一周中的几天内将列转换为具有特定格式的行,sql,sql-server,tsql,Sql,Sql Server,Tsql,我将数据存储在SQL Server中,如下所示,每周每天都有存储开放时间。我们大约有1000家商店。下面是示例数据的存储方式 现在我想以这种格式生成数据 以下是基本查询: select StoreId, SqlDayOfWeek, Closed, TimeOpen, TimeClosed from StoreHours 你能帮我查询一下我提到的格式吗 Select StoreID ,Schedule = stuff((Select concat('_'
select StoreId, SqlDayOfWeek, Closed, TimeOpen, TimeClosed
from StoreHours
你能帮我查询一下我提到的格式吗
Select StoreID
,Schedule = stuff((Select concat('_'
,choose(SQLDayOfWeek,'Sun','Mon','Tue','Wed','Thu','Fri','Sat')+','
,IIF(Closed=1,'Closed',format(convert(datetime,TimeOpen),'HHmm')+',')
,IIF(Closed=1,'',format(convert(datetime,TimeClosed),'HHmm'))
)
From YourTable
Where StoreID=A.StoreID
Order By [SQLDayOfWeek]
For XML Path ('')),1,1,'') +';'
From (Select Distinct StoreID from YourTable) A
Group By StoreID
Order By StoreID
返回这里的大多数人希望样本表数据是格式化文本,而不是图像(或指向图像的链接)。谢谢@John Cappelletti.d。我稍微调整了一下以满足我的需要。但它工作得很好。@user8067273很高兴它有帮助:)