相关疑难解决方法(0)

INERE IN(ID数组)

我有webservice,它传递了一组int.我想按如下方式执行select语句,但不断出错.我需要将数组更改为字符串吗?

[WebMethod]
public MiniEvent[] getAdminEvents(int buildingID, DateTime startDate)
{    
    command.CommandText = @"SELECT id,
                            startDateTime, endDateTime From
                            tb_bookings WHERE buildingID IN
                            (@buildingIDs) AND startDateTime <=
                            @fromDate";

    SqlParameter buildID = new SqlParameter("@buildingIDs", buildingIDs);
}
Run Code Online (Sandbox Code Playgroud)

c# t-sql sql-server ado.net sqlparameter

27
推荐指数
4
解决办法
7万
查看次数

使用CTE进行字符串拆分的有效方法

我有一张看起来像的桌子

ID  Layout
1   hello,world,welcome,to,tsql
2   welcome,to,stackoverflow
Run Code Online (Sandbox Code Playgroud)

期望的输出应该是

Id  Splitdata
1   hello
1   world
1   welcome
1   to
1   tsql
2   welcome
2   to
2   stackoverflow
Run Code Online (Sandbox Code Playgroud)

我已通过以下查询完成此操作

Declare @t TABLE(
    ID  INT IDENTITY PRIMARY KEY,
    Layout VARCHAR(MAX)
)
INSERT INTO @t(Layout)
SELECT 'hello,world,welcome,to,tsql' union all
SELECT 'welcome,to,stackoverflow'
--SELECT * FROM @t
;With cte AS(
select F1.id
 ,O.splitdata 
 from
 (
 select *,
 cast('<X>'+replace(F.Layout,',','</X><X>')+'</X>' as XML) as xmlfilter
 from @t F
 )F1
 cross apply
 ( 
 select fdata.D.value('.','varchar(MAX)') as splitdata 
 from f1.xmlfilter.nodes('X') as …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005 common-table-expression

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