sql欄位組合
⑴ 1、sql查詢語句時怎麼把幾個欄位拼接成一個欄位這幾個欄位是整型的。
SQL中字元型欄位的拼接可以使用「+」或者「||」來實現,不過考慮到你問題中這幾個欄位屬於整形欄位,需要先將整形進行數據類型轉換後,再使用「+」或者「||」拼接。
拼接的語法為:
SELECT CAST(COLUMN1 AS VARCHAR(10)) + '-' + CAST(COLUMN2 AS VARCHAR(10)+ '-' + ........) as P FROM TABLE ;
或者:
SELECT CAST(COLUMN1 AS VARCHAR(10)) || '-' + CAST(COLUMN2 AS VARCHAR(10) || '-' ||........) as P FROM TABLE ;
其中CAST函數用於將某種數據類型的表達式顯式轉換為另一種數據類型。CAST()函數的參數是一個表達式,它包括用AS關鍵字分隔的源值和目標數據類型。
語法:CAST (expression AS data_type)
舉個例子:已知表 TableA,含ID、yy、mm、dd四個整數型欄位。
(1)sql欄位組合擴展閱讀:
在SQL中,不同的資料庫拼接欄位的方法不盡相同,如
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的語法如下:
CONCAT(字串1, 字串2, 字串3, ...): 將字串1、字串2、字串3,等字串連在一起。
請注意,Oracle的CONCAT()只允許兩個參數;
換言之,一次只能將兩個字串串連起來。不過,在Oracle中,我們可以用'||'來一次串連多個字串。
例子1:
MySQL/Oracle:
SELECT CONCAT(region_name,"-",store_name) name FROM Geography
或
SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';
結果:
'EastBoston
⑵ 1、sql查詢語句時怎麼把幾個欄位拼接成一個欄位這幾個欄位是整型的。
1、語句如下:
select 欄位A, 欄位B, 欄位A + 欄位B as 欄位C From 表1
註:欄位A加上欄位B的計算列命名為欄位C
2、計算列
計算列由可以使用同一表中的其他列的表達式計算得來。表達式可以是非計算列的列名、常量、函數,也可以是用一個或多個運算符連接的上述元素的任意組合。表達式不能為子查詢。
原題的答案就是「計算列」。
(2)sql欄位組合擴展閱讀:
計算列應用范圍
計算列可用於選擇列表、WHERE 子句、ORDER BY 子句或任何可使用正則表達式的其他位置,但下列情況除外:
用作 CHECK、FOREIGN KEY 或 NOT NULL 約束的計算列必須標記為 PERSISTED。如果計算列的值由具有確定性的表達式定義,並且索引列中允許使用計算結果的數據類型,則可將該列用作索引中的鍵列,或者用作 PRIMARY KEY 或 UNIQUE 約束的一部分。
例如,如果表中含有整數列a和b,則可以對計算列a+b創建索引,但不能對計算列a+ DATEPART(dd,GETDATE()) 創建索引,因為在後續調用中,其值可能發生改變。
計算列不能作為 INSERT 或 UPDATE 語句的目標。
資料庫引擎基於使用的表達式自動確定計算列的為 Null 性。即使只有非空列,大多數表達式的結果也「認為」可為空值,因為下溢或溢出生成的結果也可能為空。使用帶AllowsNull屬性的 COLUMNPROPERTY 函數可查明表中任何計算列的為 Null 性。
通過指定 ISNULL (check_expression,constant) 可以將可為空值的表達式轉換為不可為空值的表達式,其中,constant是可替換所有空結果的非空值。
網路.計算列
⑶ 在SQL Server中,如何用表中的3個數字欄位組合成一個新的日期欄位
只要三句語句就可以搞定:
DECLARE @STR VARCHAR(8000)
SELECT @STR = ISNULL(@STR,'')+[欄位名]+'分隔符號' FROM 表名
SELECT @STR