sql - 将到达存储过程的数据从 int 更改为 string。如何将分隔数据拆分为一组整数并执行过滤器?
问题描述
我有一个存储过程,它接受 4 个变量并根据它过滤数据。其中一个变量从 int 更改为 varchar。现在,varchar 必须执行 int 所做的过滤器。
尝试使用 status 作为 varchar 并使用 split 函数并收到错误。
现有代码:
ALTER PROCEDURE [dbo].[PROCNAME]
@IDorder as bigint,
@countofresult int = 5
@Ordering INTEGER,
@Status varchar = '1,2', -- this was accepting one int but now accepts a varchar
as
begin
select top (@countofresult) * from table1 inner join table2 on table1.orderstatus=table2.orderstatusprocess
where
fkl_id = @IDorder
and
table1.statusID=@status
table1.statusID in (select data from split(@Status,',')) or (@Status is null))
order by
case when @Ordering = 0 then priceVal end asc
case when @ordering =1 then priceVal end desc
end
这在状态为空时有效,但在状态为字符串时无效。我使用拆分错误吗?还是更改类型时选择数据的工作方式不同?
解决方案
推荐阅读
- python - 将复制的文本内容转换为 CSV/XLS 文件
- jsf - Netbeans 中的托管 bean 构造抛出 java.lang.RuntimeException: at org.istrac.issdc.mpps.bean.UserBean。
(UserBean.java:1) - java - 如何从房间数据库中删除 recyclerview 项目
- python - 与拥有电子邮件的用户创建条带会话时出现“没有这样的客户”错误
- assembly - 如何从程序集中调用scanf?
- cryptography - 如何通过 Ballerina 中的字符串/文件创建加密:PublicKey 记录
- html - Angular POST 请求中的错误处理
- html - 如何使用 CSS 使导航栏链接在关闭时不变形?
- dart - Dart:为错误处理制作可重用的 try catch 块
- java - 在哪里可以找到我在 Java 中导入的包的源代码?