none
當資料欄位裡有特殊符號時怎麼辦?? RRS feed

  • 問題

  • 之前因為前端的程式設計漏擋特殊符號, 造成有不少筆資料欄位裡有特殊符號存在

    現在我想將它們 Select 出來, 但是....where子句不知道該怎麼下

    已知欄位中有 '_', '%', '#' 這三種(尤其「%」超多)

    '#' 沒有問題,但是 '_', '%' 這兩個正好是萬用字元....試來試去,頭都暈了,,還是 select 不出我要的

    where myField like '.......'  <--- like 後面到底該擺什麼???

    SQL語法中有脫逸字元嗎??

    麻煩大大幫忙解決一下了,,謝謝~~~~

    2008年2月28日 下午 02:04

解答

  • 想要查詢出地址資料中包含底線符號(_):

    Code Snippet
    SELECT 姓名,住家地址 FROM 飛狐工作室
      WHERE 住家地址 LIKE '%\_%' ESCAPE '\';

     

    ESCAPE 子句所指定字元(即 \)後的那一個字元(此處為底線_)會被視為是常數字元,而非萬用字元。

     

     

    想要查詢出地址資料中包含百分符號(%)者:

    Code Snippet

    SELECT 姓名,住家地址 FROM 飛狐工作室
      WHERE 住家地址 LIKE '%\%%' ESCAPE '\';

     

    ESCAPE 子句所指定字元(即 \)後的那一個字元(此處為底線%)會被視為是常數字元,而非萬用字元。

     

    以上範例程式碼摘錄自「章立民研究室」所著之《Microsoft® SQL Server 2005 完全實戰》一書。

    2008年2月29日 上午 06:48
    版主

所有回覆

  • 想要查詢出地址資料中包含底線符號(_):

    Code Snippet
    SELECT 姓名,住家地址 FROM 飛狐工作室
      WHERE 住家地址 LIKE '%\_%' ESCAPE '\';

     

    ESCAPE 子句所指定字元(即 \)後的那一個字元(此處為底線_)會被視為是常數字元,而非萬用字元。

     

     

    想要查詢出地址資料中包含百分符號(%)者:

    Code Snippet

    SELECT 姓名,住家地址 FROM 飛狐工作室
      WHERE 住家地址 LIKE '%\%%' ESCAPE '\';

     

    ESCAPE 子句所指定字元(即 \)後的那一個字元(此處為底線%)會被視為是常數字元,而非萬用字元。

     

    以上範例程式碼摘錄自「章立民研究室」所著之《Microsoft® SQL Server 2005 完全實戰》一書。

    2008年2月29日 上午 06:48
    版主
  • 喔,原來還要加 escape 子句喔,, 以前都不知道有這個子句

    感謝大大相助!!!  謝謝~~~~~

     

     

    2008年2月29日 上午 11:25