mssql數據庫查詢text字段

公司開發產品須要支持oracle和mssql雙版數據庫,期間遇到mssql數據庫查詢text字段的問題。 sql

嘗試: 數據庫

1.使用'=' oracle

  SELECT * FROM TEST_FLOW A WHERE A.TEST_JSON = '{states:{.....超過8000字符'; spa

  報錯:數據類型 text 和 varchar(max) 在 equal to 運算符中不兼容。 開發

2.使用'LIKE' 字符串

  SELECT * FROM TEST_FLOW A WHERE A.TEST_JSON LIKE '{states:{.....超過8000字符'; 產品

  報錯:將截斷字符串或二進制數據。 數據類型

3.使用'SUBSTRING' 二進制

  SELECT * FROM TEST_FLOW A WHERE SUBSTRING(A.TEST_JSON,1,DATALENGTH(A.FW_JSON)) =  '{states:{.....超過8000字符'; 數據

  正確!!

  嘗試完畢。

  結論:Text類型不支持'='、'<>'等比較,varchar最大8000字符,少於8000字符時,可用'LIKE'比較,

           最妥是使用'SUBSTRING'比較。

相關文章
相關標籤/搜索