SQL 语句删除字段的最后一个英文字符

如果A 字段中的最后一个字符是英文字符,则SQL 语句删除A字段的最后一个英文字符

使用什么数据库呢,可以正则筛选下,然后可以使用截取或者替换去实现

UPDATE bb SET bb.scores = SUBSTR(bb.scores, 1, LENGTH(bb.scores) - 1)
WHERE  REGEXP_LIKE(bb.scores, '[A-Za-z]$'); 

基于new bing部分指引作答:
要删除字段 A 的最后一个英文字符,可以使用 SQL 中的 SUBSTRING 函数结合 LEN 函数来实现。假设 A 字段的名称为 your_column,你可以使用下面的 SQL 语句执行删除操作:

UPDATE your_table
SET your_column = SUBSTRING(your_column, 1, LEN(your_column) - 1)
WHERE your_column <> '' AND your_column LIKE '%[a-z]'

解释:

  • your_table 是包含字段 A 的表名;
  • your_column 是要操作的字段 A 的列名;
  • SUBSTRING(your_column, 1, LEN(your_column) - 1) 表示取字段 A 的前 n-1 个字符作为新值;
  • your_column <> '' 条件是为了排除字段 A 为空的情况;
  • your_column LIKE '%[a-z]' 条件是为了检查字段 A 的最后一个字符是否为英文字母。

请根据实际情况将上述 SQL 语句中的 your_tableyour_column 替换为你实际使用的表名和列名。执行该 SQL 语句后,将会删除字段 A 的最后一个英文字符。

建议在上面回答的基础上,套上表更新触发器

CREATE TRIGGER table_trigger
AFTER UPDATE OF your_column ON  your_table
BEGIN
 ...
END
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/207156
  • 除此之外, 这篇博客: SQL作业中的 18.查询第二个字母为A的员工姓名 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • SELECT ename
    FROM emp
    WHERE ename LIKE '_A%';
    +--------+
    | ename  |
    +--------+
    | WARD   |
    | MARTIN |
    | JAMES  |
    +--------+
    
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用SUBSTRING函数和LEN函数来实现删除最后一个英文字母的功能。具体步骤如下:

    1. 编写SQL语句,选取需要的表格和字段:

      SELECT [A字段名] FROM [表格名];

    2. 使用SUBSTRING和LEN函数来获取A字段的前n-1个字符,其中n为A字段的长度:

      SELECT SUBSTRING([A字段名],1,LEN([A字段名])-1) AS [新字段名] FROM [表格名];

    3. 更新表格,将新字段写入到A字段中:

      UPDATE [表格名] SET [A字段名]=[新字段名];

    完整的SQL语句如下:

    UPDATE [表格名] SET [A字段名]=SUBSTRING([A字段名],1,LEN([A字段名])-1) WHERE RIGHT([A字段名],1) LIKE '[a-zA-Z]' ;
    

    请注意,在第三步更新表格时需要添加一个WHERE子句,用于判断A字段的最后一个字符是否为英文字母。如果符合条件,就执行更新操作。如果条件不符合,则不执行更新操作。

    另外,根据参考资料提供的SQL文件,表格名应该为emp,需要删除的字段名应该为ename,所以完整的SQL语句应该为:

    UPDATE emp SET ename=SUBSTRING(ename,1,LEN(ename)-1) WHERE RIGHT(ename,1) LIKE '[a-zA-Z]';