Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL:премахване на последната запетая в низа

Използване на REVERSE и STUFF :

SELECT
    REVERSE(
        STUFF(
            REVERSE(LTRIM(RTRIM(INETSHORTD))), 
            1, 
            CASE WHEN SUBSTRING((REVERSE(LTRIM(RTRIM(INETSHORTD)))), 1, 1) = ',' THEN 1 ELSE 0 END, 
            ''
        )
    )
FROM tbl

Първо, искате да TRIM вашите данни, за да се отървете от водещи и завършващи интервали. След това REVERSE и проверете дали първият знак е , . Ако е, премахнете го, в противен случай не правете нищо. След това REVERSE го върнете отново. Можете да премахнете първия знак, като използвате STUFF(string, 1, 1, '') .

SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конфигурации с обхват на базата данни на SQL Server и автоматична корекция на план

  2. Избягване на SQL инжектиране без параметри

  3. Мога ли да имам външен ключ, препращащ колона в изглед в SQL Server?

  4. Как мога да направя заявка за стойност в XML колоната на SQL Server

  5. SQL изпълнява променлива +1, докато променливата достигне 52?