cFilePath 字段中有如下值
lcz\0821\194712_01.jpg
lcz\0821\194712_06.jpg
.....................
现在要以这个字段的值去修改 flag 字段的值,cFilePath 字段满足条件 lcz\0821\194712,即“_”前内容相同时环境SQL Server 2000
lcz\0821\194712_01.jpg
lcz\0821\194712_06.jpg
.....................
现在要以这个字段的值去修改 flag 字段的值,cFilePath 字段满足条件 lcz\0821\194712,即“_”前内容相同时环境SQL Server 2000
insert into tb values('lcz\0821\194712_01.jpg',null)
insert into tb values('lcz\0821\194712_06.jpg',null)
goupdate tb set flag = left(cFilePath , charindex('_',cFilePath) - 1) where charindex('_',cFilePath) > 0
select * from tbdrop table tb/*
cFilePath flag
------------------------------ ------------------------------
lcz\0821\194712_01.jpg lcz\0821\194712
lcz\0821\194712_06.jpg lcz\0821\194712(所影响的行数为 2 行)
*/
-- Author : htl258(Tony)
-- Date : 2010-04-30 11:49:29
-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
-- Blog : http://blog.csdn.net/htl258
--------------------------------------------------------------------------
--> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb](col varchar(30),flag varchar(10))
INSERT [tb]
SELECT 'lcz\0821\194712_01.jpg',null union all
SELECT 'lcz\0821\194712_06.jpg',nullGOupdate tb set flag=right(col,charindex('_',reverse(col))-1)SELECT * FROM [tb]
/*
col flag
------------------------------ ----------
lcz\0821\194712_01.jpg 01.jpg
lcz\0821\194712_06.jpg 06.jpg(2 行受影响)
*/
-- Author : htl258(Tony)
-- Date : 2010-04-30 11:49:29
-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
-- Blog : http://blog.csdn.net/htl258
--------------------------------------------------------------------------
--> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb](col varchar(30),flag varchar(30))
INSERT [tb]
SELECT 'lcz\0821\194712_01.jpg',null union all
SELECT 'lcz\0821\194712_06.jpg',nullGOupdate tb set flag=left(col,charindex('_',col)-1)SELECT * FROM [tb]
/*
col flag
------------------------------ ------------------------------
lcz\0821\194712_01.jpg lcz\0821\194712
lcz\0821\194712_06.jpg lcz\0821\194712(2 行受影响)
*/还是要这个结果,自己选吧
我试了一下,还是更新不了
我的意思是原来flag字段的值为 0,现在根据cFilePath 更新flag字段的值,条件和上面一样
update tb set flag = 1 where cFilePath like 'lcz\0821\194712%'
是不是应该这样写 ?