我写了成功的SELECT
声明,向我展示了所有用双引号括起来的公司名称,例如“ ABC Company”。我想永久删除双引号,并用清理后的版本替换公司名称。
这是我的SELECT
,效果很好:
SELECT
companyname,
CASE
WHEN companyname LIKE '"%"'
THEN SUBSTRING(companyname, 2, LEN(companyname) - 2)
ELSE companyname
END AS CC
FROM
Company_Table
WHERE
companyName LIKE '"%"'
我无法将此语句转换为UPDATE
。我想影响原来的companyname
列。
我曾尝试在上述代码周围添加UPDATE
子句,但似乎无法正确理解。
能否请我举个例子,说明如何在适当的位置删除列的第一个和最后一个字符。
否则,这是体力劳动!
我希望原始公司名称字段中没有“”。
答案 0 :(得分:2)
作为更新:
UPDATE Company_Table
SET companyname = SUBSTRING(companyname, 2, LEN(companyname)-2)
WHERE companyName like '"%"'
单表更新查询采用以下形式
UPDATE table
SET column1 = value1, column2 = value2 ...
WHERE truth_test
您可以在SET中的=左右使用相同的列名。算出所有右侧,然后将其应用到左侧,以使这些值不会互相干扰
(如果您要说SET a = a + 1,b = a + 1,那么对于a和b都开始为0的行,更新后它们都将为1。a不会递增从0到1,则b变为1 + 1。换句话说,b设置为old-a + 1而不是new-a + 1
答案 1 :(得分:0)
如果您确定在companyName值的开头和结尾处没有双引号,则可以使用REPLACE函数将其替换为空字符串。
volumeBindingMode: WaitForFirstConsumer
请注意,第二个参数是用双引号引起来的单引号。
答案 2 :(得分:0)
如果有可能出现格式错误的输入,则需要避免使用负长度参数:
CASE WHEN LEN(companyname) > 2
THEN SUBSTRING(companyname, 2, LEN(companyname) - 2)
ELSE '' END;