gpt4 book ai didi

sql-server - SQL Server Case 语句在 Delphi TADODataSet 中不起作用

转载 作者:行者123 更新时间:2023-12-03 15:34:50 28 4
gpt4 key购买 nike

在 Delphi XE5 中,我使用 TADODataSet 并将其 CommandText 设置为此命令(使用 CASE) :

SELECT 
Master.*,
CASE
( SELECT TOP (1) personeli_State
FROM Detail
WHERE Detail.FK_Key = Master.pk_key
AND Detail.personeli_State = 'Test'
AND Detail.sended = 0 )
WHEN 'Test' THEN 'Test exist'
ELSE ''
END AS PersonState
FROM
Master
LEFT OUTER JOIN
ExtraInfo ON ExtraInfo.p_key = Master.fk_ExtraInfo
WHERE
(fk_key=:Fk)

记录集为空,但没有CASE语句记录集有数据。(我无法使用计算列或 SQL Server View ,因为我使用了动态查询)

最佳答案

将 CASE 语句中的 Select 部分更改为以下内容:

    CASE
( SELECT TOP (1) personeli_State
FROM Detail
WHERE Detail.personeli_State = 'Test'
AND Detail.sended = 0
AND Detail.FK_Key = Master.pk_key )

在我看来,ADO 似乎改变了执行计划的优先级......!

关于sql-server - SQL Server Case 语句在 Delphi TADODataSet 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178975/

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