UPDATE AskClass
SET AskCount = AskCount + 1
WHERE ClaId IN (
SELECT ClaNavIdList FROM AskClass WHERE ClaId = 7 //这里的ClaNavIdList是字符串他的值是5,6,7 执行时提示类型转换错误
)
如果我这么写就对了:
UPDATE AskClass
SET AskCount = AskCount + 1
WHERE ClaId IN (
SELECT 5,6,7 FROM AskClass WHERE ClaId = 7
)我应如何改??
SET AskCount = AskCount + 1
WHERE ClaId IN (
SELECT ClaNavIdList FROM AskClass WHERE ClaId = 7 //这里的ClaNavIdList是字符串他的值是5,6,7 执行时提示类型转换错误
)
如果我这么写就对了:
UPDATE AskClass
SET AskCount = AskCount + 1
WHERE ClaId IN (
SELECT 5,6,7 FROM AskClass WHERE ClaId = 7
)我应如何改??
解决方案 »
- sql的日期字段问题
- JS编码
- 用.net做一个地方门户网站,如何在多个市做成其分站呢?
- AspxGrid控件。。。。aspgrid控件有多条记录,但鼠标点击某条记录不起作用,有谁知道原因。急
- 100分求救.在ASP.NET里怎么样代码复用,就像ASP里的INCLUDE,用几种方法,哪种最常用?
- 大家来看看啊。。。。。。看者有分!
- 哪位大虾能提供一些用C#读写删改XML文件内容的资料啊?救小弟一命!!
- 如何在asp.net中使IE中的后退、前进按钮失效!!!!!!!!!!
- vs2012 双击打开单文件时 提示 值不在预期的范围内
- 求大佬分享,用Aps.NET MVC做的青鸟朋友网项目,本人菜鸟,技术有限
- 按照ID链接问题!请高手来指点一下步骤!
- 每次点击下载IE就自动关闭?请教高手
SET AskCount = AskCount + 1
WHERE ClaId IN (
5,6,7
)发生了co匹 错误 不好意思。。
================
WHERE ClaId IN (
SELECT cast(ClaNavIdList as int) FROM AskClass WHERE ClaId = 7
CREATE FUNCTION f_splitSTR(
@s varchar(8000),
@split varchar(10)
)RETURNS @re TABLE(col int)
AS
BEGIN
DECLARE @t TABLE(ID int IDENTITY,b bit)
INSERT @t(b) SELECT TOP 8000 0 FROM syscolumns a,syscolumns b INSERT @re SELECT cast(SUBSTRING(@s,ID,CHARINDEX(@split,@s+@split,ID)-ID) as int)
FROM @t
WHERE ID<=LEN(@s+'a')
AND CHARINDEX(@split,@split+@s,ID)=ID
RETURN
END
GO调用的时候
UPDATE AskClass
SET AskCount = AskCount + 1
WHERE ClaId IN (
SELECT f_splitSTR(ClaNavIdList,",") FROM AskClass WHERE ClaId = 7
)