![](/img/trans.png)
[英]Compare Comma separated value from parameter to get the ID based on that value
[英]How to get max Value Unit from field Value Unit based on first value before comma separated?
我在 SQL 服务器 2012 上工作我面临问题:我无法根据逗号前的第一个值从值单元中获取第一个最大值。
例如这个值的单位如下:
1.89, 2.625, 3.465
我将在逗号分隔为 1.89 之前获得第一个值,然后如果这个数字是最大值,则返回完整的数字存在于价值单元上
create table #finaltable
(
partid int,
ValueUnit nvarchar(50)
)
insert into #finaltable(partid,ValueUnit)
values
(2532,'1.71, 2.375, 3.135'),
(2532,'1.89, 2.625, 3.465')
select * from #finaltable
如何根据逗号分隔之前的第一个值从字段 ValueUnit 中获取第一个最大值?
预期结果返回:
1.89, 2.625, 3.465
因为 1.89 是 1.71 中的最大数字,所以我返回了完整数字
我同意评论,你的设计很糟糕。 有关更多信息,您还应该阅读“在数据库列中存储分隔列表真的那么糟糕吗?” .
但是,您可以使用patindex()
获取逗号的 position,然后使用left()
提取第一个数字表示。 convert()
它到一些decimal
,按它排序并取TOP 1
行。
SELECT TOP 1
*
FROM #finaltable
ORDER BY convert(decimal(4, 3), left(valueunit, patindex('%,%', valueunit) - 1)) DESC;
您可能需要调整转换为decimal
。 我不知道您可能需要什么最大长度和精度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.