相关疑难解决方法(0)

将整数列转换为varchar并与string进行比较

如何比较sql server中整数列的整数列表.例如,我有一列statusidint.我想从哪里得到的结果statusid1,4,8,9.我将所有这些整数保存在字符串中并使用列statusid进行操作,如下所示,但我在那里面临错误.该字符串可以是硬编码或参数.

where Cast(statusid as varchar) in ('1,4,8,9');
Run Code Online (Sandbox Code Playgroud)

请建议解决方案.

sql sql-server

7
推荐指数
1
解决办法
2万
查看次数

存储过程是否可以在"IN"子句中使用动态参数?

我想运行这样的查询:

 SELECT * FROM Studio WHERE Id IN (134, 144, 132, 138, 7432, 7543, 2566)
Run Code Online (Sandbox Code Playgroud)

但传递给IN子句的Id数量仅在运行时确定.

我是否必须使用动态SQL,还是可以使用存储过程完成?

更新: 如果有可用的选项,哪一个更好?

谢谢.

t-sql stored-procedures dynamic-sql

6
推荐指数
2
解决办法
1万
查看次数

将列与t-sql中的值列表进行比较

我有一种情况,我在页面上显示记录,我需要一种方法让用户选择要在另一页上显示的那些记录的子集.这些记录不存储在任何地方,它是动态生成的东西.我知道我可以使用jquery将逗号分隔的值传递给我的其他网页,但我不确定在sql中最好的方法是说哪个uniqueid在这个id列表中不在表等中我我知道我可以用一堆ors动态构造sql,但这看起来像是一个黑客.还有其他人有什么建议吗?

t-sql sql-server

5
推荐指数
1
解决办法
1万
查看次数

如何在sql存储过程的'In'子句中传递字符串数组

我在数据库中有用户表存储用户信息.我想创建存储过程,我将把UserID作为列表传递.我想使用此列表从用户表中获取数据.

我使用以下查询创建类型作为表:

CREATE TYPE dbo.MyUserIDs AS TABLE (UserID int)
Run Code Online (Sandbox Code Playgroud)

现在我在存储过程中使用此类型:

ALTER PROCEDURE [dbo].[Test_in_Query]
    @MyUserids MyUserIDs READONLY 
AS
BEGIN
    SET NOCOUNT ON;
    SELECT * From Tbl_UserMast where UserID in (select UserID from @MyUserids)
END
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,我收到以下错误:

操作数类型冲突:int与MyUserIDs不兼容

我关注此链接作为参考: 参考链接

我在sql server中直接执行存储过程
在此输入图像描述

sql-server stored-procedures sql-server-2008

3
推荐指数
1
解决办法
1317
查看次数