Сначала вам нужно изменить текущую таблицу на временную таблицу:
alter table student_info rename to student_name
Затем вы захотите воссоздать student_info
:
create table student_info add column (
stuid VARCHAR(5) PRIMARY KEY,
name VARCHAR(255),
subjectid_3 INTEGER,
subjectid_4 INTEGER,
subjectid_5 INTEGER
)
Затем заполните student_info
:
insert into student_info
select
u.stuid,
u.name,
s3.marks as subjectid_3,
s4.marks as subjectid_4,
s5.marks as subjectid_5
from
student_temp u
left outer join markdetails s3 on
u.stuid = s3.stuid
and s3.subjectid = 3
left outer join markdetails s4 on
u.stuid = s4.stuid
and s4.subjectid = 4
left outer join markdetails s5 on
u.stuid = s5.stuid
and s5.subjectid = 5
Теперь просто отбросьте временную таблицу:
drop table student_temp
И вот как вы можете быстро обновить свою таблицу.
В SQLite отсутствует функция pivot
, поэтому лучшее, что вы можете сделать, - это жестко кодировать некоторые левые соединения. left join
принесет соответствие любым строкам в своих условиях соединения и вернет null
для любых строк из первой или левой таблицы, которые не удовлетворяют условиям соединения для второй таблицы.
Я думаю, вам нужно передать -f
со страницы руководства ( man git-checkout
, GIT-CHECKOUT (1)):
-f, --force
Продолжить, даже если индекс или рабочее дерево отличается от HEAD.
Используется для отбрасывания локальных изменений .
Например, отменить изменения в текущей ветви и переключиться на другую ветвь:
git checkout -f master
Какие изменения git diff
показывают в файле? В Windows я видел проблемы с окончанием строк, вызывающие подобные проблемы. В этом случае посмотрите, какие настройки у вас есть для git config core.autocrlf
и git config core.safecrlf
. Здесь документация по этим настройкам .
Я бы сказал, если вы используете git svn
для интеграции с Subversion, убедитесь, что autocrlf
выключен. Насколько я могу судить, в этой конфигурации он просто не работает, и это заставляет большинство инструментов думать, что файлы были изменены, когда вы выполнили проверку
, чтобы отменить любые изменения.
Если вы видите ошибку проблема, связанная с git checkout
,
при чтении из файловой системы и
конвертировать в обратном порядке при записи в
файловая система. Переменная может быть установлена на
ввод, и в этом случае преобразование
происходит только при чтении из
файловая система, но файлы записываются
с LF в конце строк.
В настоящее время какие пути рассмотреть
"текст" (т.е. подвергаться
механизм autocrlf) решено чисто
на основе содержимого.
core.safecrlf
Если true, заставляет git проверять, преобразовывает ли CRLF как контролируется core.autocrlf обратимый. Git будет проверить, изменяет ли команда файл в дерево работ либо напрямую, либо косвенно. Например, совершая файл, за которым следует проверка того же файл должен дать исходный файл в дерево работ. Если это не так для текущей настройки core.autocrlf, git отклонит файл. Переменная может быть установлена на "предупреждать", и в этом случае git будет только предупредить о необратимом обращении но продолжаем операцию. ...