91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

發布時間:2021-12-30 09:29:10 來源:億速云 閱讀:170 作者:柒染 欄目:大數據

本篇文章為大家展示了SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

雖然公司在大力的往開源的數據庫上轉移,但傳統數據庫的使用在一段時間還是會存在的,最近開發的親們報出一個怪異的現象,就是外部傳進來得字符用在末尾帶有 \u0001 (在SQL SERVER  里面這又特殊的含義可以理解為char(1)),存儲進 nvarchar 字符類型后會帶有一個空格(其實存進char也一樣),而這樣的數據在某些特殊的規則引擎或決策引擎中就會因為這多的一個空格而報錯,而你去查的時候,他又不帶空格。

大家可以注意下圖,如果用len()SQL SERVER 的傳統函數來查看末尾帶有空格和不帶有空格的 nvarchar 或 varchar 的變量,得到的長度是一樣的,要通過datalenght  來查看才能看到數據之間的不同,但大部分開發查看字符長度,都是使用 SQL SERVER len() 并會得到一個錯誤結果。

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

而產生這個問題的主要原因是 SQL SERVER 如何比較字符的SQL SERVER 是遵循 ANSI/ISO SQL-92 規范來進行字符的比較。使得在字符處理中SQL 認為 字符串末尾帶空格和 不帶空格的對比 在大多數的比較中是相等的。

如果還不清晰,我們下面在做一個更直白的比較

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

OK  說到這里,上邊帶有末尾空格和不帶有空格的字符串在處理中很多情況是一樣的,實際上是不一樣的。另外想 trim的同學 也可以省省心了,照樣還是不一樣。

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

反過來我們比對一下 POSTGRESQL ,主要的原因是有2 

1 作為傳統企業,或金融企業,POSTGRESQL 在收費到開源數據庫轉換中,會節省大量的人力物力(尤其對開發來說)

2 PG 火 (言簡意賅)

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

PG 中是沒有 NVARCHAR 這樣的類型的,我們使用 VARCHAR (在SQL SERVER 中VARCHAR 也有類似上面的毛病) 和 PG的 text 類型,測試是在PG admin tools 上進行的,也是通過插入帶有空格,和不帶空格的數據來進測試

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

插入兩條數據 id 為 2的是帶有空格的

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

通過上圖的比較和證明,PG可以清晰的在查詢中分辨那個值里面包含空格,那些不是, PostgreSQL 版本 11 的這兩種字符類型,是沒有類似 SQL SREVER 那樣的'坑'

這里如果我們使用PG 中的 char類型,也會出現和SQL SERVER 類似的情況,所以在使用PG 的過程中,如果可以還是盡量使用  varchar 類型 或 text 類型

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開

結論 SQL SERVER 的空格的坑是實實在在的存在,如果要避開這個坑,光在數據庫層面來搞,還是比較麻煩,并行在使用SQL SERVER 的 rtrim 函數去掉右空格也以失敗告終,而POSTGRESQL varchar   text 天然的屏蔽了這個問題,對于這類問題數據庫本身就可以解決。從另一個側面,也說明PG建表的字符字段,您還是盡量不要選擇 CHAR 類型。

上述內容就是SQL SERVER 空格的坑”以及PostgreSQL類似的坑如何避開,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

焦作市| 泰安市| 呼玛县| 梧州市| 连平县| 泗洪县| 库车县| 大邑县| 德清县| 江城| 桐柏县| 高淳县| 海晏县| 铜鼓县| 白城市| 尉犁县| 孝义市| 宝丰县| 普宁市| 绥江县| 正定县| 富锦市| 林口县| 固安县| 张家口市| 阳泉市| 化德县| 霍林郭勒市| 甘孜| 甘肃省| 军事| 伊宁市| 边坝县| 南郑县| 长岛县| 将乐县| 台北市| 宁远县| 澎湖县| 全椒县| 北碚区|