sql - 在 SQL Server Compact 中加入逗号分隔值不起作用
问题描述
我有 2 表如下
CREATE TABLE [Chart]
(
[Id] BIGINT NOT NULL IDENTITY (1,1),
[Owner] NVARCHAR(100),
[Identifier] NVARCHAR(128) NOT NULL,
[Title] NVARCHAR(100),
[Type] INT NOT NULL,
[Category] INT NOT NULL,
[CreatedDate] DATETIME NOT NULL,
[ModifiedDate] DATETIME,
[ExpireDate] DATETIME,
[VisitCount] BIGINT NOT NULL,
[ConfigurationId] BIGINT NOT NULL,
[Theme] NVARCHAR(50)
);
ALTER TABLE [Chart] ADD CONSTRAINT [PK_dbo.Chart] PRIMARY KEY ([Id]);
CREATE TABLE [SelectedTag]
(
[Id] BIGINT NOT NULL IDENTITY (1,1),
[Identifier] NVARCHAR(4000),
[TagName] NVARCHAR(4000),
[Description] NVARCHAR(4000),
[EuUnit] NVARCHAR(50),
[EuRangeLow] NVARCHAR(50),
[EuRangeHigh] NVARCHAR(50),
[MinStats] FLOAT,
[MaxStats] FLOAT,
[Min] FLOAT,
[Max] FLOAT,
[GroupCode] NVARCHAR(4000)
);
ALTER TABLE [SelectedTag] ADD CONSTRAINT [PK_dbo.SelectedTag] PRIMARY KEY ([Id]);
我为查询标记计数和标记列表尝试了这个答案,它在 SQL Server 中运行良好
https://dba.stackexchange.com/q/112408/172901
select c.Identifier, count(c.Identifier) as TagCount, (
select concat(',', s.TagName) from selectedtag as s
where concat(',', c.identifier, ',') like '%,'+s.identifier+',%'
for xml path(''), type
).value('substring(text()[1], 2)', 'varchar(max)') as TagList
from chart c
group by c.Identifier
但是对于 SQL Server 紧凑型数据库,它不起作用
我使用 CompactView 通过 SQL 紧凑型数据库运行查询
https://sourceforge.net/projects/compactview/
我的查询或 SQL Compact 问题有什么问题?谢谢
解决方案
SQL Server Compact 不支持 XML 数据类型和函数,嵌套的 sSELECT 也不起作用。编写一个普通的选择,并在代码中执行额外的处理。
推荐阅读
- android - Robolectric does not support API level 28
- linux - 如何使用 shell 脚本在 Linux 中等待另一个进程完成
- python - 维基百科文章的多类文本分类
- python - Django中多对多关系的通过模型中的复杂搜索
- android - 使用 Retrofit2 发出 Soap 请求时如何防止字符串被编码
- javascript - PHP对象数组到javascript关联数组
- java - Workaround for this calculator parsing error
- javascript - 如何在angular6组件中使用外部JS文件
- c# - Dynamics D365FO X++ 订阅 C#.NET 事件
- ios - 无法将类型“()”的值转换为预期的参数类型“__os_dispatch_queue_attr”