gpt4 book ai didi

sql - 仅根据给定的 OrderId 获取记录

转载 作者:行者123 更新时间:2023-12-05 01:11:02 24 4
gpt4 key购买 nike

我有一个带有主键和自动递增列的表,让我们说“HeaderFieldID”。现在我想根据 HeaderFieldID 值获取记录。

例如:

select * 
from tblHeaderField
where HeaderFieldID in (2,1,3,4,6,5)

但是,默认情况下,我是按 HeaderFieldID asc 顺序获取记录的。但我只想根据给定的 HeaderFieldID 进行记录。

原始表格

HeaderFieldID       HFName       DisplayName
1 OrgName1 disp1
2 OrgName2 disp2
3 OrgName3 disp3
4 OrgName4 disp4
5 OrgName5 disp5
6 OrgName6 disp6

提前致谢

最佳答案

我不知道你是否可以通过IN订购,因为你不知道订单。因此,首先我会将 IN 中的数据拆分成行,然后将其连接到您的表中。

DECLARE @table TABLE (ID INT IDENTITY(1,1) NOT NULL, NR INT)

--Prodvide data to lookup
DECLARE @givenText VARCHAR(100) = '2,1,3,4,5,6,7,8,9,10,11,12,13,14,15'


-- Split requested string into rows and add unique number
;WITH xmlData (xmlData) AS (
SELECT CAST('<x>'+REPLACE(@givenText, ',', '</x><x>')+'</x>' AS XML) AS xmlData
)
INSERT INTO @table (NR)
SELECT x.value('.','INT') AS NR
FROM xmlData
CROSS APPLY xmlData.xmlData.nodes('//x') AS func(x)


--Join tables to get result
SELECT tHF.*
FROM tblHeaderField AS tHF
INNER JOIN @table AS T
ON T.NR = tHF.HeaderFieldID
ORDER BY T.ID

关于sql - 仅根据给定的 OrderId 获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23930907/

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