gpt4 book ai didi

sql - 如何强制结果顺序

转载 作者:行者123 更新时间:2023-12-04 20:06:05 25 4
gpt4 key购买 nike

我正在编写自己的翻译器以更好地控制我的翻译。

使用 SQL Server 2008 这是英德词典的表:

CREATE TABLE engdeu 
(
[eword] [varchar](100) NOT NULL,
[dword] [varchar](100) NOT NULL
-- clipped --
)

这是我要翻译的文本:

  Berlin was the first city ...

这是将给定的英文文本翻译成对应的德文文本的查询:

select * 
from engdeu
where eword in ('Berlin', 'was', 'the', 'first', 'city')

这是查询的结果:

eword   dword
city Stadt
first erst\e\r/es
the der/die/das
was wurde\n\war
Berlin Berlin

如您所见,结果的顺序与原始英文文本的顺序不同。

我怎样才能创建一个 SQL 以同样的顺序产生结果:

eword   dword
Berlin Berlin
was wurde\n\war
the der/die/das
first erst\e\r/es
city Stadt

最佳答案

因此,这不是 IN 子句的任务。您必须提供有关您想要的订单的 SQL 信息。一种可能的解决方案是使用事务 SQL,并将此信息存储在表变量中,然后仅使用 JOIN 和 ORDER BY,如下所示:

DECLARE @vartab TABLE( 
text varchar(30) NOT NULL,
pos varchar(30) NOT NULL
);
INSERT @vartab
SELECT 1,'Berlin'
SELECT 2,'was'
SELECT 3,'the'
SELECT 4,'first'
SELECT 5,'city'
;
SELECT
*
FROM
@vartab vt
LEFT JOIN engdeu ed ON (vt.text = ed.word)
ORDER BY
vt.pos

由于我目前无法对其进行测试,因此我的代码中存在一些错误,但您应该了解其背后的基本思想。

Here是来自优秀文档大师的一些手册。

here一些关于表变量的文本看起来更直接。

关于sql - 如何强制结果顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33953853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com