sql - 用于替换字符串并将字符串的其余部分转换为 Int 的 SQL 查询
问题描述
我有以下查询。该查询应该使用我的 where 参数查看我的帐户表。这将返回所有以前导 3 个字母“DAG”开头的帐户代码。数据返回始终采用以三个字母后跟一个数字开头的格式。然后我想获得最大的数字。为此,我通过将字符串转换为 Int 来排序字符串。
我得到以下错误:
消息 207,级别 16,状态 1,第 24 行
无效的列名称“AccountCodeWithoutDAG”。
这是我的 SQL 查询。
SELECT TOP 1
REPLACE(AccountCode, 'DAG', '') AS AccountCodeWithoutDAG
FROM
Accounts
WHERE
MangCode = 'ADFG'
ORDER BY
CONVERT(INT, AccountCodeWithoutDAG)
我究竟做错了什么?
解决方案
您不能order by
与convert
别名一起使用
但是您可以尝试使用子查询来AccountCodeWithoutDAG
获取order by
它
SELECT TOP 1 AccountCodeWithoutDAG
FROM
(
SELECT REPLACE(AccountCode,'DAG','') AS AccountCodeWithoutDAG
FROM Accounts
where MangCode = 'ADFG'
) t1
Order by Convert(int, AccountCodeWithoutDAG )
推荐阅读
- javascript - 没有库的 JSON.parse(JSON.stringify(ngrx-object)) 的更好解决方案
- html - 是否可以在第二列开始第一行并在 flex-box 中以第三列结束?
- javascript - React hooks:将组件调用为函数与渲染为元素
- amazon-web-services - 获取亚马逊精确的短信发送状态
- common-lisp - 从字符串向量中区分整数
- git - 重新定位和解决冲突后拒绝推送
- wordpress - 如何修复我的域名 (promining.digital) 上的错误?
- javascript - Lightslider Jquery 不工作,仅在打开检查元素和调整页面大小时工作
- python - 如何使用 kraken api (python) 将未结订单请求限制为一对?
- angular - Angular:表达式在检查后发生了变化。以前的值:'未定义'。当前值:'[对象对象]'