mysql - MySql 切断最后一个数字
问题描述
很抱歉问,但我试图从这个结果“219916#54 /0004112986”中获取最后 10 个数字
我使用的主要标准是 SUBSTR(TRENN,-11,10) 所以我只得到最后 10 个数字。我使用的查询是:
$sqlQuery = "SELECT b.NR_LE, b.NR_VP_EXTERN, b.PN FROM (SELECT DISTINCT NR_LE_1 FROM table WHERE lager = 'RA1' AND ID_KLIENT = 'IACTVK' AND ID_ARTIKEL <> 'VERSAND' AND MNG_FREI > 0
AND NOT ((ORT ='STD' AND BEREICH ='WV') OR (ORT ='INV' AND BEREICH ='YV' AND PLATZ ='99'))) a,
(SELECT DISTINCT NR_LE, NR_VP_EXTERN, **SUBSTR(TRENN,-11,10)** AS PN FROM table WHERE NR_VP_EXTERN IS NOT NULL) b
WHERE a.NR_LE_1 = b.NR_LE
ORDER BY b.NR_LE, b.NR_VP_EXTERN";
但不知何故,我得到了“/”的结果......就像“/000411298”一样,所以最后一个数字被切断了,取而代之的是前面有“/”,我不知道如何只取最后10个没有“/”的数字不知从何而来的前面..
所以上面查询的结果是:
NR_LE "53638786"
NR_VP_EXTERN "12FR03792"
PN "/000411298"
我需要它:
NR_LE "53638786"
NR_VP_EXTERN "12FR03792"
PN "0004112986"
谢谢你的帮助
解决方案
你可以使用right()
喜欢RIGHT(TRENN,10)
而且最好还是明确地使用 join
SELECT b.NR_LE, b.NR_VP_EXTERN, b.PN FROM
(
SELECT DISTINCT NR_LE_1 FROM table
WHERE lager = 'RA1' AND ID_KLIENT = 'IACTVK' AND ID_ARTIKEL <> 'VERSAND' AND MNG_FREI > 0
AND NOT ((ORT ='STD' AND BEREICH ='WV') OR (ORT ='INV' AND BEREICH ='YV' AND PLATZ ='99'))
) a inner join
(SELECT DISTINCT NR_LE, NR_VP_EXTERN, RIGHT(TRENN,10) AS PN FROM table WHERE NR_VP_EXTERN IS NOT NULL
) b on a.NR_LE_1 = b.NR_LE
ORDER BY b.NR_LE, b.NR_VP_EXTERN
推荐阅读
- c - C:指向结构的指针数组
- android - Flutter:文本搜索中的 Syncfusion_flutter_pdfviewer 为某些 pdf 提供了错误的结果
- reactjs - 对外部 API 的 HTTP 请求适用于 .NET,但不适用于 React(CORS 问题)
- javascript - 从 SQL 服务器中选择函数
- flutter - 由于呈现问题,横幅广告未显示在 Listview.separated 中
- sql - regexp_replace 可能是排序规则问题
- wordpress - 当存在 save_post 操作时,我无法更新我的页面是 functions.php
- sql - How to create sql table that changes dynamically the order of the columns based on current date/month?
- python - 外键相关,Django
- c# - 在 .net 中从 EPPlus 迁移到 NPOI