asp.net - 将 varchar 转换为 int SQl server 2005

标签 asp.net mysql sql sql-server-2005 tsql

我有一个简单的 sql 表,它有两列 Name 和 IDs 都是 varchar(10);现在我在表中有值('Test','1,2,3')。我们有另一个表来获取 employee 的完整详细信息,但是 tblEmployee 中的 IDs 列是 int。下面的 SQL 会报错,

Select * from tblEmployee where Ids in (Select Ids from tblNameId where name='Test');

错误是无法将 1,2,3 转换为 int。他们是将所有值转换为 int 或任何其他解决方法的方法。

谢谢。

最佳答案

使用下面的函数拆分文本

CREATE FUNCTION dbo.Split(@String varchar(8000))     
returns @temptable TABLE (items int)     
as     
begin     
    declare @idx int     
    declare @slice varchar(8000)     

    select @idx = 1     
        if len(@String)<1 or @String is null  return     

    while @idx!= 0     
    begin     
        set @idx = charindex(',',@String)     
        if @idx!=0     
            set @slice = left(@String,@idx - 1)     
        else     
            set @slice = @String     

        if(len(@slice)>0)
            insert into @temptable(Items) values(CONVERT(INT, @slice))     

        set @String = right(@String,len(@String) - @idx)     
        if len(@String) = 0 break     
    end 
return     
end

然后

Select * from tblEmployee where Ids in dbo.Split(Select Ids from tblNameId where name='Test');

(改编自本网站:http://www.logiclabz.com/sql-server/split-function-in-sql-server-to-break-comma-separated-strings-into-table.aspx)

关于asp.net - 将 varchar 转换为 int SQl server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880215/

相关文章:

asp.net - XSD 文件无法在 Visual Studio 2017 的表设计模式下打开

asp.net mvc 5 - 系统找不到存在的 View

asp.net 成员(member)资格 - 管理员批准

c# - 使用 ASP.Net MVC 和 Web Api 的 Application Insights 实时指标

sql - 在 SAS Proc Sql 中进行动态 SQL 查询

java - 将变量分配给与 JOIN 不同表中另一个同名的列

mysql - 如何对 SQL-Laravel 的所有聚合值求和?

php - 按用户评论过滤 - SQL 参数数量必须在 0 到 65535 之间

mysql - 如何防止在mySQL中输入包含空格的文本

Java Webapp 无法在 openshift 上连接 mysql