Я хочу добавить несколько UCId в одном столбце SQL Server. Я использую Stuff
, но в результате отображается все идентификатор UC вместо условия.Хотите добавить несколько значений в столбец таблицы SQL, разделенных запятой,
Таблица:
UCId UCPre UCPost UCNext (No column name)
-----------------------------------------------------------------------------------------------
UC01 User must be Registerd User is Loggined sucessfully UC02 UC03,UC05,UC02
UC02 User is Loggined sucessfully User is added UC03 UC03,UC05,UC02
UC03 File must be selected File is added NULL UC03,UC05,UC02
UC04 File is added File is deleted NULL UC03,UC05,UC02
UC05 User is Loggined sucessfully User is deleted NULL UC03,UC05,UC02
Я использую следующий запрос:
SELECT
b.*,
STUFF(
(SELECT ',' + a.UCId
FROM UCDetails a, test b
WHERE (b.UCPost = a.UCPre)
FOR XML PATH ('')),1,1,'')
FROM
test b
JOIN
UCDetails a ON b.UCPost = a.UCPre
Что я хочу:
Я хочу, чтобы в UCNext
колонке UC01 Идентификатор UC02 и UC05, разделенных запятыми (UC02,UC05
), поскольку UCPost UC01 соответствует UCPre UC02 и UC05.
Для данных, не могли бы вы указать, какие именно значения столбцов должны быть для каждого 'UCid'? – gotqn
Дорогой для UC01 значения UCId в UCNext будут UC02 и UC05 –
[Плохие привычки пинать: использование JOIN в старом стиле] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad -habits-to-kick-using-old-style-joins.aspx) - этот стиль таблиц * в стиле старого стиля * с запятой был заменен на синтаксис * надлежащего * ANSI 'JOIN' в ANSI - ** 92 ** Стандарт SQL (** более 20 лет ** назад), и его использование не рекомендуется –