gpt4 book ai didi

c# - 查询时防止丢失 [MEMNO] 值中的前导零?

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:28 26 4
gpt4 key购买 nike

我在应用程序中使用了多个 SQL 语句。我注意到当某些成员(member)号码返回时,例如 012345,它们返回为 12345。此编号用于协助文件命名约定,并且根据其他一些标准,需要采用 6 位数字格式才能正确处理文件。

谁能帮我解决这个问题?中断来自查询 IBM AS400 系统。有人建议使用 DIGITS( ) 函数,但我还没有让它与下面的示例查询一起使用:

SELECT DISTINCT DIGITS(a.memno), 
a.name,
a.addr1,
a.addr2,
a.city,
a.state,
a.zip,
a.sex,
a.lname,
a.ssan,
b.addr1 as old_addr1,
b.addr2 as old_addr2,
b.city as old_city,
b.state as old_state,
b.zip as old_zip,
'P' as SYS
FROM Lib1.Table1 a, Lib1.Table2 b
WHERE a.memno = b.memno and
b.groupid = 'P2' and
b.type = 'B' and
b.rcchg <> 'N' and
b.datec = 20140107
AND (UPPER(a.addr1) <> UPPER(b.addr1) or UPPER(a.addr2) <> UPPER(b.addr2) or UPPER(a.city) <> UPPER(b.city) or UPPER(a.state) <> UPPER(b.state) or UPPER(a.zip) <> UPPER(b.zip))
UNION SELECT DISTINCT
DIGITS(a.memno),
a.name,
a.addr1,
a.addr2,
a.city,
a.state,
a.zip,
a.sex,
a.lname,
a.ssan,
b.addr1 as old_addr1,
b.addr2 as old_addr2,
b.city as old_city,
b.state as old_state,
b.zip as old_zip,
'N' as SYS
FROM Lib2.Table1 a, Lib2.Table2 b
WHERE a.memno = b.memno and
b.groupid = 'N2' and
b.type = 'B' and
b.rcchg <> 'N' and
b.datec = 20140107 AND (UPPER(a.addr1) <> UPPER(b.addr1) or UPPER(a.addr2) <> UPPER(b.addr2) or UPPER(a.city) <> UPPER(b.city) or UPPER(a.state) <> UPPER(b.state) or UPPER(a.zip) <> UPPER(b.zip))
ORDER BY sys, memno asc

当我在 AS400 上运行这个查询时,它完全按照预期工作。但是,当我在 Visual Studio 2012 的服务器资源管理器中通过我的数据连接运行它时,我收到:

Error Source: CWBODBC.DLL
Error Message: ERROR [Hy000] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0208 - ORDER BY column MEMNO or expression not in result table.

此查询是通过我的 C# 应用程序在 ODBC 连接上使用 ODBC 命令发送的。

最佳答案

试试列号:

ORDER BY 16, 1 asc

编辑:添加支持背景信息。

第一列未命名,因为它是函数的结果。

最终表的第一列未命名,因为第一个 SELECT 中的 column1 未命名。因为该列未命名,所以它不能包含在 ORDER BY 中。

因此,除了 ORDER BY 1 asc 之外,您还可以将第一个 SELECT 更改为类似

SELECT DISTINCT DIGITS(a.memno) as memno,
...
ORDER BY sys, memno

通过在第一个 SELECT 中给列一个名称,结果表列就有了一个名称。

IBM DB2 for i SQL reference 7.1 ORDER BY

关于c# - 查询时防止丢失 [MEMNO] 值中的前导零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21029366/

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