我在从表
获取不同记录时遇到问题我的查询:
SELECT DISTINCT name FROM employee WHERE name LIKE '%S%'
ORDER BY
CASE WHEN name LIKE 'S%' THEN 0 else 1 end,name
错误:[SQL01214] ORDER BY EXPRESSION无效 错误详情:https://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.1.0/com.ibm.db2.udb.msg.doc/doc/sql0214.htm
我尝试编写子查询和核心子查询,但没有运气
需要帮助来获取备用SQL查询..
答案 0 :(得分:1)
根据您提供的documentation link from IBM,您的错误似乎是由以下情况引起的:
在select子句中指定了DISTINCT,并且表达式不能与选择列表中的表达式完全匹配。仅当子句类型为ORDER BY时才会出现此原因代码。
换句话说,您在public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
FillTable();
DataContext = this;
}
字段上使用了DISTINCT
,但之后也尝试在name
子句中使用name
。
您可以尝试使用以下子查询来解决ORDER BY
关键字的潜在问题:
DISTINCT
答案 1 :(得分:0)
使用公用表表达式按不同选择中的case语句排序。
with cte as (
SELECT DISTINCT name FROM employee WHERE name LIKE '%S%'
)
select * from cte
ORDER BY
CASE WHEN name LIKE 'S%' THEN 0 else 1 end,name