--创建存储过程 IF EXISTS (SELECT * FROM sysobjects WHERE name='GetSplitString' AND xtype='p') DROP PROCEDURE dbo.GetSplitString GO CREATE PROCEDURE dbo.GetSplitString @strID nvarchar(max) --以逗号隔开的字符串 ,) output --临时表 AS BEGIN declare @totalLength int declar
--将给定的逗号分隔的数字字符串转换为Table CREATE FUNCTION [dbo].[fu_Split](@strString nvarchar(4000)) RETURNS @Result TABLE(Value int) AS BEGIN DECLARE @x xml SELECT @x = CAST('<A>' + REPLACE(@strString,',','</A><A>') + '</A>' AS xml) INSERT INTO @
select stuff((select ','+w.Waybillno from Web_Way_Waybill w where w.IsValid<>'Y' AND w.TruckOrder='T1712220007' FOR XML PATH('')),1,1,''))+ left(',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,', (59- (select len(( select stuff((select '
写了个存储过程,中间用到了类似这种写法 Select * From User Where ID In('1,2,3') 其中'1,2,3'是从外面传进来的参数,就这样执行报错:'1,2,3'转换为int类型出错,因为ID是int类型的 想了个比较笨的解决方法:思路-循环将传进来的参数'1,2,3'分割并转换为int然后存储到临时表,之后在In里面Select ID这样就不报错了 ); Set @ID='4,11064'; Declare @table_UserID Table ( ID Int
合并列值 --******************************************************************************************* 表结构,数据如下: id value ----- ------ aa bb aaa bbb ccc 需要得到结果: id values ------ ----------- aa,bb aaa,bbb,ccc 即:group by id, 求 value 的和(字符串相加) . 旧的解决方法(在sql
1.字段查找表值"这包括"方法一字符串的所有记录 如果表中有一name场,查询name这包括"乔 - 史密斯"所有记录.能够写sql: Stirng strsql="SELECT * FROM 表名 WHERE name LIKE '%"+"张三"+"%'"; 2.查询某字段值"包括于"某个字符串的全部记录的方法 假设查询表中name字段包括于字符串"张三是个好学生&qu
通常我们需要在sql中拼接字符串 ,可以用for xml path() 来进行拼接,如下实例. 同时未去掉最后一个逗号可以用LEFT函数来实现. ) AS UserName FROM ( SELECT B.BUGUID, ( SELECT ( CASE WHEN userName = '' THEN userName