SQL語句的 號的問題,SQL中取序號的問題

2022-10-23 11:50:17 字數 1692 閱讀 7360

1樓:匿名使用者

不可以省略,@銀行帳號名稱是一個變數,也是一個字串。

set @sql='alter table dbo.臨時表1 add ['+@銀行帳號名稱+'] int default 0'其實就是執行了三個字串的相加操作,把結果賦值給@sql變數。

括號是為了相容sql server裡的關鍵字,如果欄位名是關鍵字的話,某些版本的sql server會報錯,所以要用括起來。

2樓:匿名使用者

sql 中的 + 號可以做運算子 +,也可以做為連線符。

一、兩端都為數值 ,如 select 1+2 ,即返回3

二、兩端引用欄位,如 select a + b

1、a、b均為字元型別 ,做為連線符,即 a=1,b=1 select a+b 返回 11

2、a、b均為數值型別,做為運算子 ,即 a=1,b=1 select a+b 返回 2

3、a、b其中一列為數值型,那麼系統會先嚐試將字元列轉數值,轉換成功,以運算子運算,轉換失敗則報錯。

如 a = '1' ,b=1, select a+b 返回 2 ,

而 a='a',b=1 ,select a+b 則系統報錯。

該情況,不同的資料庫管理系統,處理略有不同,比如部分資料庫不會嘗試轉換,而是直接報錯。

3樓:傳說中的鷹王

如果@銀行帳號名稱 = pufa

相當於執行語句

alter table dbo.臨時表1 add [pufa] int default 0

@sql 是在拼執行語句。

因為語句中需要呼叫變數,所以要先拼出sql串,再執行+號的作用是把兩個字串連在一起,

2個+號就把3個字串連到了一起

是把欄位名括起來 ,用來定界,防止有空格等字元出現在欄位裡

4樓:劉偉偉實名

首先解決""的問題是:t_sql語法已經規定凡是對物件命名不符合標準命名的,如你給物件命名時出現了特殊字元如空格,加號,等特殊字元需在物件名前加上或"",這樣不會出錯否則就出錯。然後說加號問題,它的作用是連線字串只要你要連線字串必須用它

sql中取序號的問題

5樓:匿名使用者

這樣不就行嗎

建立測試表及插入資料

create table a

(顧客id  int,

消費id int,

消費金額 int);

insert into a values (1,1,100);

insert into a values (1,2,20);

insert into a values (1,3,300);

insert into a values (1,4,40);

執行set @r=0;

select @r:=@r+1, a.*

from a

where 顧客id=1;

結果其中第一列就是消費次數

6樓:axure夜話

這個問題的關鍵時候查詢的時候使用的排序方式。有了排序方式你就可以在獲取資料的時候構造虛擬的序號,有了序號序號就代表客戶的第幾次消費。比如使用排名函式生成等等。

7樓:葡萄冰茶

是oracle嗎 oracle 可以查出序號

SQL語句的問題,SQL語句的問題

用聯接。假設資料庫名為test,列1為a,列2為b,排序欄位為id。下列語句可查出所有b列與其他行的a列相同的記錄 select t1.a,t1.b from test t1 join test t2 on t1.b t2.a where t1.a t2.a 下列語句可查出第5行是否存在b列與其他行...

SQL語句問題,SQL語句問題

兩種寫法 select b.b id a.id as a id a.o money a.n money as abc from a,b where b.a id a.id select b.b id a.id as a id a.o money a.n money as abc from b lef...

SQL語句問題

雖然你的這個語句最終是select dateadd d,1,2008 12 10 dateadd函式裡面的第一個引數是一個標誌,它不是字元型別,應該是一個 列舉型別 你那條語句實際上是在執行 select dateadd d 1,2008 12 10 這和上面的那個是完全不同的,都是d,但是這個d表...