Re: [SQL ] 一句TSQL很像是Bug的更新語法

作者: somnolentcat (普小莉)   2014-01-16 14:31:53
推文怕太長,回一下
如果你要對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抓出來而已?
作者: forkome (初心者)   2014-02-06 08:36:00
因為擺的位置太奇怪,例子是 = +@ 而非 +=非常感謝回覆
作者: somnolentcat (普小莉)   2014-02-14 10:32:00
因為變數是 @param吧,不是+@,是+與@param....

Links booklink

Contact Us: admin [ a t ] ucptt.com