您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

GROUP BY具有基于另一个FIELD的首选项

GROUP BY具有基于另一个FIELD的首选项

在另一个问题上,Yes123增加了一些额外的…

如果首选语言是中文,并且将值与认值和英语关联,则该值应不返回任何结果…

我明白这意味着…

如果该组不包含该语言,但包含非认语言,则不返回任何内容

DECLARE @preferred VARCHAR(64) SET @preferred = ‘English’

SELECT value, ( SELECT language FROM tbl [search] WHERE externID = 10 AND value = tbl.value AND language IN (‘default’, @preferred) ORDER BY NULLIF(language, ‘default’) DESC LIMIT 1 ) FROM tbl WHERE externID = 10 GROUP BY value HAVING COUNT(*) = SUM(CASE WHEN language IN (‘default’, @preferred) THEN 1 ELSE 0 END)

HAVING子句只是指出该值的每个记录都必须是“认”或您要搜索的语言。

查询中的ORDER BY和LIMIT 1始终强制最后选择“认”。意思是,如果找到了首选语言,则会优先显示该语言。

其他 2022/1/1 18:44:42 有339人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶