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

SQL избира няколко реда в една колона

AFAIK, няма естествен начин да го направите. Можете обаче да използвате ЗА XML за да направите това по следния начин:

SELECT t1.Id, STUFF(( SELECT ', ' + t2.name FROM Table1 t2 WHERE t2.ID =t1.ID FOR XML PATH ('')) ,1,2,'') AS NamesFROM Table1 t1GROUP BY t1.Id; 

Демонстрация на SQL Fiddle

Това ще ви даде:

<предварителен код>| ID | ИМЕНА |----------------| 1 | A, B, C || 2 | D, E || 3 | F |

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. set @var =exec stored_procedure

  2. по-добър начин за генериране на таблица месеци/години

  3. Има ли начин да получите различни резултати за една и съща SQL заявка, ако данните останат същите?

  4. регулярен израз на sql сървър

  5. Как да създам съхранена процедура, която по избор ще търси колони?