Update SqlServer GetStringJoinSelector

This commit is contained in:
sunkaixuan
2025-04-24 17:47:53 +08:00
parent 405c736c98
commit 33a8f1b215

View File

@@ -55,9 +55,18 @@ namespace SqlSugar
return " FOR XML PATH('')),1,len(N','),'') "; return " FOR XML PATH('')),1,len(N','),'') ";
} }
public override string GetStringJoinSelector(string result, string separator) public override string GetStringJoinSelector(string result, string separator)
{
if (result.ObjToString().Trim().StartsWith("DISTINCT ", StringComparison.OrdinalIgnoreCase))
{
int index = result.IndexOf(result, StringComparison.Ordinal); // 找到去掉前缀空格后的位置
result= result.Substring(index + 9); // 9 是 "DISTINCT " 的长度
return $"stuff((SELECT DISTINCT cast(N'{separator}' as nvarchar(max)) + cast({result} as nvarchar(max))";
}
else
{ {
return $"stuff((SELECT cast(N'{separator}' as nvarchar(max)) + cast({result} as nvarchar(max))"; return $"stuff((SELECT cast(N'{separator}' as nvarchar(max)) + cast({result} as nvarchar(max))";
} }
}
public override string DateValue(MethodCallExpressionModel model) public override string DateValue(MethodCallExpressionModel model)
{ {
var parameter = model.Args[0]; var parameter = model.Args[0];