作者somnolentcat (普小莉)
标题Re: [SQL ] 一句TSQL很像是Bug的更新语法
时间Thu Jan 16 14:31:53 2014
推文怕太长,回一下
如果你要对SQL内栏位资料捞出来的金额批次算汇率怎麽办?
select 金额*30 as 计算後金额 from 资料表x
+号不就只是一个计算方式吗@@ 还是我有误会你的意思?
以下可试试(拿昨天建的那个资料表继续用XD
if exists
(select * from dbo.sysobjects where id = object_id(N'[dbo].[学生]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[学生]
GO
CREATE TABLE [dbo].[学生](
[学号] [int] IDENTITY(1,1) NOT NULL,
[姓名] [nvarchar](50) NOT NULL,
[年级] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_学生] PRIMARY KEY CLUSTERED
(
[学号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON
[PRIMARY]
) ON [PRIMARY]
GO
insert [学生]( 姓名,年级) values('A01',1)
insert [学生]( 姓名,年级) values('A02',2)
insert [学生]( 姓名,年级) values('A03',1)
insert [学生]( 姓名,年级) values('A04',1)
insert [学生]( 姓名,年级) values('A05',3)
insert [学生]( 姓名,年级) values('A06',1)
insert [学生]( 姓名,年级) values('A07',1)
insert [学生]( 姓名,年级) values('A08',2)
insert [学生]( 姓名,年级) values('A09',3)
insert [学生]( 姓名,年级) values('A10',1)
select 姓名,年级,年级*30 AS 年级加一 from 学生if exists
(select * from dbo.sysobjects where id = object_id(N'[dbo].[学生]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[学生]
GO
CREATE TABLE [dbo].[学生](
[学号] [int] IDENTITY(1,1) NOT NULL,
[姓名] [nvarchar](50) NOT NULL,
[年级] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_学生] PRIMARY KEY CLUSTERED
(
[学号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON
[PRIMARY]
) ON [PRIMARY]
GO
insert [学生]( 姓名,年级) values('A01',1)
insert [学生]( 姓名,年级) values('A02',2)
insert [学生]( 姓名,年级) values('A03',1)
insert [学生]( 姓名,年级) values('A04',1)
insert [学生]( 姓名,年级) values('A05',3)
insert [学生]( 姓名,年级) values('A06',1)
insert [学生]( 姓名,年级) values('A07',1)
insert [学生]( 姓名,年级) values('A08',2)
insert [学生]( 姓名,年级) values('A09',3)
insert [学生]( 姓名,年级) values('A10',1)
select 姓名,年级,年级*30 AS 年级加一 from 学生
※ 引述《forkome (初心者)》之铭言:
: 各位大大好
: 最近小弟在Trouble Shooting时看到一句SQL,所使用的语言是C# + MS SQL
: Update Table set Column1 = Column1 + 1 Where Column2 = +@Param
: Cmd.Parameters.Add.......(@param)
: 我以为这句不会执行会挂
: 但Column2 =+@Param 居然不影响执行结果,请问+号对MS SQL来说
: 有什麽特殊用法吗?还是单纯的不严谨没有被Compile抓出来而已?
--
「你长的好像我第五个女朋友喔!」
『是喔!这麽巧?那你交过几个女朋友?』
「四个。」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.112.242
1F:→ forkome:因为摆的位置太奇怪,例子是 = +@ 而非 += 02/06 08:36
2F:→ forkome:非常感谢回覆 02/06 08:37
3F:→ somnolentcat:因为变数是 @param吧,不是+@,是+与@param.... 02/14 10:32