mssql-collation-conflict

什麼是定序衝突問題?

在 SQL Server 中,定序(Collation )規則定義了在比較和排序字串時使用的規則,包括字母順序、大小寫敏感性等。當執行 SQL 查詢時,如果涉及到多個具有不同定序規則的欄進行比較或排序,就可能會遇到定序衝突問題。

例如,一個查詢涉及到兩個具有不同定序規則的欄進行比較,就可能會出現「無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Chinese_Taiwan_Stroke_BIN" 之間的定序衝突。」這類的錯誤。

解決方法

繼續閱讀

(MSSQL)datetime處理

 

現在時間

1
SELECT GETDATE()

取得現在年、月、日

1
2
3
SELECT YEAR(GETDATE())
SELECT MONTH(GETDATE())
SELECT DAY(GETDATE())
繼續閱讀

(MSSQL)INSERT INTO SELECT/SELECT INTO FROM

INSERT INTO SELECT語法

1
INSERT INTO TABLE2(COL1, COL2,...) SELECT COL1, COL2,... FROM TABLE1 WHERE CONDITION

INSERT INTO SELECT 語法從一個表複製資料,然後把數據插入到一個已存在的表中。目標表中任何已存在的行都不會受影響。

繼續閱讀

(MSSQL)資料轉置PIVOT(Row2Col)

Syntax

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT <non-pivoted column>,  
[first pivoted column] AS <column name>,
[second pivoted column] AS <column name>,
...
[last pivoted column] AS <column name>
FROM
(<SELECT query that produces the data>)
AS <alias for the source query>
PIVOT
(
<aggregation function>(<column being aggregated>)
FOR
[<column that contains the values that will become column headers>]
IN ( [first pivoted column], [second pivoted column],
... [last pivoted column])
) AS <alias for the pivot table>
<optional ORDER BY clause>;
繼續閱讀

(MSSQL)查詢table/view欄位DATATYPE

透過SYS.COLUMNS JOIN SYS.TYPES查詢

1
2
3
4
5
6
7
8
9
10
SELECT c.name,
t.name,
c.max_length,
c.precision,
c.scale
FROM SYS.COLUMNS c
JOIN SYS.TYPES t
ON t.user_type_id = c.user_type_id
AND t.system_type_id = c.system_type_id
WHERE object_id = OBJECT_ID('TABLENAME/VIEWNAME')
繼續閱讀