sudhakarthikeyan Ответов: 2

Как установить запись строки в качестве столбца в SQL server


Farmerid Имя Farm_detailsdata

1 Тест "Suggestedrequired":"Yes","Perofrmance":"Good","Attendance":"Yes"
2 TestB "Suggestedrequired":"Yes","Perofrmance":"Good"


'Выберите A. farmer_id,B. firstname + ""+ B. lastname + "" + B. фамилия
как farmer_name,A. farm_detailsdata
От dbo.tbl_farmer_farmdetails_' + @originname + ' A
Внутреннее соединение dbo.tbl_farmerregistration_' + @originname + ' B на B. farmerctscode = A. farmer_id
Внутреннее соединение dbo.tbl_villagemaster_' + @originname + ' C на C. villageid = B. village
Где B. farmerseason = '2017'


мне нужен вывод bleow следующим образом, из приведенного выше sql - запроса, как изменить строку на столбец в sql server


Название Farmer_id Suggestedrequired Посещаемость Perofrmance

1 Тест Да Хорошо Да
2 Тест В Да Хорошо -

Что я уже пробовал:

Farmerid Имя Farm_detailsdata

1 Тест "Suggestedrequired":"Yes","Perofrmance":"Good","Attendance":"Yes"
2 TestB "Suggestedrequired":"Yes","Perofrmance":"Good"


'Выберите A. farmer_id,B. firstname + ""+ B. lastname + "" + B. фамилия
как farmer_name,A. farm_detailsdata
От dbo.tbl_farmer_farmdetails_' + @originname + ' A
Внутреннее соединение dbo.tbl_farmerregistration_' + @originname + ' B на B. farmerctscode = A. farmer_id
Внутреннее соединение dbo.tbl_villagemaster_' + @originname + ' C на C. villageid = B. village
Где B. farmerseason = '2017'


мне нужен вывод bleow следующим образом, из приведенного выше sql - запроса, как изменить строку на столбец в sql server


Название Farmer_id Suggestedrequired Посещаемость Perofrmance

1 Тест Да Хорошо Да
2 Тест В Да Хорошо -

Richard Deeming

Репост
https://www.codeproject.com/Questions/1241432/How-to-split-rows-in-excel[^]
https://www.codeproject.com/Questions/1241546/How-to-set-row-entry-as-column-header-from-excel-i[^]

Если вы хотите обновить свой вопрос, чтобы добавить недостающую информацию, Нажмите зеленую ссылку "улучшить вопрос" и отредактируйте свой вопрос. НЕ опубликуйте свое обновление как новый вопрос!

2 Ответов

Рейтинг:
2

OriginalGriff

В принципе, не храните свою информацию таким образом. Значения, разделенные запятыми в одном столбце, не очень хорошая идея - с ними трудно работать в SQL, так как средства обработки строк в лучшем случае плохи. Это также очень неэффективный способ хранения информации, когда вы повторяете огромные объемы данных.

А чтобы получить текст из строки в качестве заголовков столбцов, это в лучшем случае просто неприятно - потребуется как минимум два прохода через ваши данные.

Вместо этого добавьте в таблицу упорядочивания по результатам вычисления

ID    Desc
1     Suggestedrequired
2     Perofrmance
3     Attendance
...

Затем добавьте таблицу FieldStatus
ID    Desc
1     Yes
2     No
3     Good
4     Bad
...
Теперь добавьте таблицу, чтобы связать FarmID с данными поля:
ID    FarmerID   FieldTypeID   FieldStatusID
1     1          1             1
2     1          2             3
3     1          3             1
4     2          1             1
5     2          2             3
...
Теперь у вас есть все ваши данные, выложенные в разумной форме, и вы можете начать обрабатывать их более легко, используя соединения, и начать думать об использовании PIVOT и UNPIVOT для сортировки вашей таблицы, если это необходимо.


Maciej Los

Хороший совет!

Рейтинг:
2

Maciej Los

Пожалуйста, не делайте репостов.

Вот вам и ответ на ваш вопрос: Как установить строку в столбец с помощью pivot в SQL server[^]