Если Вы находитесь на SQL Server 2017 или Azure, см. ответ Mathieu Renda .
у меня была подобная проблема, когда я пытался присоединиться к двум таблицам со связями "один ко многим". В SQL 2005 я нашел, что XML PATH
метод может обработать конкатенацию строк очень легко.
, Если существует таблица, названная STUDENTS
SubjectID StudentName
---------- -------------
1 Mary
1 John
1 Sam
2 Alaina
2 Edward
Результат, я ожидал, был:
SubjectID StudentName
---------- -------------
1 Mary, John, Sam
2 Alaina, Edward
я использовал следующий T-SQL
:
SELECT Main.SubjectID,
LEFT(Main.Students,Len(Main.Students)-1) As "Students"
FROM
(
SELECT DISTINCT ST2.SubjectID,
(
SELECT ST1.StudentName + ',' AS [text()]
FROM dbo.Students ST1
WHERE ST1.SubjectID = ST2.SubjectID
ORDER BY ST1.SubjectID
FOR XML PATH ('')
) [Students]
FROM dbo.Students ST2
) [Main]
можно сделать то же самое более компактным способом, если Вы можете concat запятые вначале и использование substring
для пропуска первого, таким образом, Вы не должны делать подзапроса:
SELECT DISTINCT ST2.SubjectID,
SUBSTRING(
(
SELECT ','+ST1.StudentName AS [text()]
FROM dbo.Students ST1
WHERE ST1.SubjectID = ST2.SubjectID
ORDER BY ST1.SubjectID
FOR XML PATH ('')
), 2, 1000) [Students]
FROM dbo.Students ST2
o - это ссылка на объект jQuery, а НЕ ссылка на элемент DOM. Внутри вашей функции validateRepeatPassword выполните:
alert( $(o).attr('id') );
Если вы хотите получить доступ к прямому свойству элемента DOM из объекта jQuery,
alert( o[0].id )
alert( o.get(0).id );
Внутри вашей функции o
является jQuery объект, вы должны получить идентификатор с помощью функции attr для o
.
alert(o.attr('id'));
Но если вы хотите работать напрямую с элементом DOM на вашем validateRepeatPassword
функцию, вы можете передать ссылку на элемент:
validateRepeatPassword($('#id_repeatPassword').get(0));