Я новичок в написании SQL и буду очень признателен за помощь в решении этой проблемы. :)
Я пытаюсь выделить всю строку в строку, желательно через пробел или запятую. Я хотел бы сделать это в общем, без необходимости знать особенности столбцов в таблицах.
Я бы хотел сделать следующее:
DECLARE @MyStringVar NVARCHAR(MAX) = ''
@MyStringVar = SELECT * FROM MyTable WHERE ID = @ID AS STRING
Но то, что я в итоге сделал, было:
DECLARE @MyStringVar = ''
DECLARE @SecificField1 INT
DECLARE @SpecificField2 NVARCHAR(255)
DECLARE @SpecificField3 NVARCHAR(1000)
...
SELECT @SpecificField1 = Field1, @SpecificField2 = Field2, @SpecificField3 = Field3 FROM MyTable WHERE ID = @ID
SELECT @StringBuilder = @StringBuilder + CONVERT(nvarchar(10), @Field1) + ' ' + @Field2 + ' ' + @Field3
Тьфу. (
Я видел, как некоторые люди публиковали информацию о функции COALESCE, но, опять же, я не видел, чтобы кто-то использовал ее без определенных имен столбцов.
Кроме того, я подумал, что, возможно, есть способ использовать имена столбцов для их динамического получения:
SELECT [COLUMN_NAME] FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MyTable'
Не похоже, чтобы это было так сложно. (
То, что я сделал, работает сейчас, но заранее спасибо всем, кто может указать мне на лучшее решение. :)
EDIT:
Исправлено, спасибо всем, кто ответил. :)