ПредишенСледващото

С други думи, как да изключвате колона с познато име от резултата от SELECT * FROM заявка на маса?

Изброяват колони също попада в отчета за INSERT, с изключение от списъка с автоматично инкрементиране колони или колони, които искате да зададете стойност по подразбиране.

Да предположим, че искате да изберете всички колони от таблицата с изключение на лаптоп код колона. За да се покаже на всички колони на таблицата, просто напишете

Но за да се изключи от списъка на колона код. ние трябва да се изброят всички други графи:

Би било хубаво, ако можем да напиша нещо подобно

Такава възможност ще ни позволи да се избегне скучна работа шанс да направите грешка при писането, и би било полезно за динамично заявки, когато не са известни предварително на всяка маса или на броя на колоните в нея.

Но, уви, такава възможност ние нямаме. Но ние можем да създадете списък с колони с помощта на спомагателен скрипт, за да продължат да използват резултатите от нея запитвания. Това можем да направим с помощта на стандартен представителството на метаданните, който се нарича Информация Schema:

НЕ ПО предикат, които използваме, за да бъде в състояние в бъдеще да се изключи не една, а няколко колони. Сега трябва да получите резултат като символен низ, който е разделен със запетаи списък на колони. За това ние вече трябва да използвате неконвенционални средства.

SQL Server

По-специално, за SQL Server, можем да го направим с помощта на проект за XML PATH. подмяна едновременно използване Замяна пространство между запетайките на имена на колони:

По принцип, ние сме в състояние да генерира необходимата декларация изцяло на факта, че тя може да се използва динамично с код:

В случай на MySQL, можем да използваме специален обобщаваща функция GROUP_CONCAT:

Трябва да се отбележи, че информацията в схемата MySQL не се отнася за отделна база данни, както и на целия сървър. Ето защо, в случай, че сървърът в различни бази данни да има маси със същото име, в критериите за подбор трябва да добавите предикатните уточняване схеми (бази данни): TABLE_SCHEMA = 'компютри.

Конкатенация в MySQL е направено с помощта на CONCAT. В резултат на това най-доброто решение, за да ни проблем може да се изписва така:

PostgreSQL

В PostgreSQL, хубав изглед задача стойности на колони като текстов списък могат да бъдат решени с помощта на два вградени функции: масив и ARRAY_TO_STRING. Първият от тях се превръща в извадката стойности в масив и втората наредба превръща в списъка. В този втори параметър ARRAY_TO_STRING функция определя характера, който ще бъде ограничен елементи от списъка. Сега, решението на нашия проблем може да се изписва така:

Имайте предвид, че стандартен оператор "||" и да се отбележи необходимостта от колона COLUMN_NAME данни изрично тип (information_schema.sql_identifier) ​​до въглен тип / VARCHAR за слепване струни в PostgreSQL.


Пукнатината на предното стъкло на Mitsubishi Carisma на www.remont-skolov.nethouse.ru
remont-skolov.nethouse.ru

Подкрепете проекта - споделете линка, благодаря!