我想编写一个简单的查询,它将从表中获取数据(可能包含引号和双引号),但它应该删除其中的所有引号。
e.g。对于以下数据:
EmpID EmpName CompName
----- ------- -----------
1234 "xyz" A's Company
输出应该是:
EmpID EmpName CompName
----- ------- -----------
1234 xyz As Company
答案 0 :(得分:5)
SELECT EmpID,
EmpName,
REPLACE(REPLACE(CompName, '"', ''), '''','')
FROM dbo.table;
答案 1 :(得分:4)
select
EmpID,
replace(EmpName, '"', '') as EmpName,
CompName
from yourTable
答案 2 :(得分:3)
利用sql server的替换功能为您解决问题
REPLACE ( string_expression , string_pattern , string_replacement )
select EmpID,
replace(replace(EmpName,'"', ''),'''','') Empname,
replace(replace(CompName,'"', ''),'''','') CompName
from table
注意:强>
通常你会替换'with''这会使SQL在查询数据库时感到高兴。任何内置SQL函数(如替换)的诀窍在于它们也要求您将单引号加倍。
所以要在代码中替换'with',你要这样做
答案 3 :(得分: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