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

Как да разделя низ на колони за изглед?

Ето един бърз и лесен начин:

DECLARE @T TABLE(full_location_id varchar(100));INSERT INTO @T VALUES ('A1-BF-35-B1'), ('AR-B3');WITH CTE AS( SELECT full_location_id, LEN(full_location_id)-LEN(REPLACE(full_location_id,'-','')) N FROM @T)SELECT full_location_id, PARSENAME(REPLACE(full_location_id,'-','.'),N+1), PARSENAME(REPLACE (full_location_id,'-','.'),N), PARSENAME(REPLACE(full_location_id,'-','.'),N-1), PARSENAME(REPLACE(full_location_id,'-','.'), N-2) ОТ CTE 

Резултати:

<предварителен код>╔══════════════════╦══════╦══════╦════════ ═══╗║ full_location_id ║ col1 ║ col2 ║ col3 ║ col4 ║╠══════════════════╬══════╬══════╬═ ═════╬══════╣║ A1-BF-35-B1 ║ A1 ║ BF ║ 35 ║ B1 ║║ AR-B3 ║ AR ║ B3 ║ NULL ║ NULL ║␕␕␕␕ ════════════╩══════╩══════╩══════╩══════╝

И ето един sqlfiddle с демонстрация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчисляване на MD5 хеш на UTF8 низ

  2. Предаване на променлива в клауза IN в рамките на SQL функция?

  3. Каква е възможността на MS SQL Server, подобна на функцията MySQL FIELD()?

  4. Записване на ВСИЧКИ заявки в база данни на SQL Server 2008 Express?

  5. Подреждане Чрез използване на параметър за името на колоната