2

テーブル (引用符と二重引用符が含まれている可能性があります) からデータをフェッチする単純なクエリを作成したいのですが、その中のすべての引用符を削除する必要があります。

たとえば、次のデータの場合:

EmpID  EmpName  CompName
-----  -------  -----------
1234   "xyz"    A's Company

出力は次のようになります。

EmpID  EmpName  CompName
-----  -------  -----------
1234   xyz      As Company
4

4 に答える 4

5
SELECT EmpID, 
      EmpName, 
      REPLACE(REPLACE(CompName, '"', ''), '''','') 
  FROM dbo.table;
于 2012-06-22T12:29:44.597 に答える
4
select
    EmpID,
    replace(EmpName, '"', '') as EmpName,
    CompName
from yourTable
于 2012-06-22T12:30:02.420 に答える
3

SQLサーバーの置換機能を利用して問題を解決してください

REPLACE (文字列式、文字列パターン、文字列置換)

select EmpID,
         replace(replace(EmpName,'"', ''),'''','') Empname, 
          replace(replace(CompName,'"', ''),'''','') CompName 
from table 

ノート:

通常は ' を '' に置き換えます。これにより、データベースにクエリを実行するときに SQL が快適になります。組み込み SQL 関数 (replace など) のトリックは、単一引用符を二重にする必要があることです。

したがって、コードで ' を '' に置き換えるには、次のようにします。

于 2012-06-22T12:29:35.280 に答える
0

EmpName 列と CompName 列の両方で一重引用符または二重引用符を置き換えたいと想定しています。単純な置換でこれを行うことができますが、2 つのセットを置換する必要があるため、置換コマンドをネストします。

おそらくすでにこれを知っているでしょうが、SQL が文字列の開始を認識しないように、単一引用符をクエリで二重にする必要があります。

基本的:

Replace(Replace([Column], '"', ''), '''', '')
-- here are the targets    ^         ^^
-- replaced with nothing       ^^         ^^

したがって、最終的なコードは次のようになります。

SELECT
  EmpID,
  REPLACE(REPLACE(EmpName, '"', ''), '''',''),
  REPLACE(REPLACE(CompName, '"', ''), '''','')

FROM
  yourTableName
于 2012-06-22T12:39:36.873 に答える