Вы хотите изменить ключевые значения. Вы можете сделать это вручную следующим образом:
select a.*
, max(case b.key when 'Name' then b.value end) Name
, max(case b.key when 'DOB' then b.value end) DOB
from TableA a
left join TableB b
on a.id = b.table_a_id
group by a.id
, a.title
, a.date
, a.etc
Приведенный выше запрос будет работать, если у вас есть только один из каждого атрибута для данной записи в Таблице A, в противном случае он даст вам наибольшее значение. Если вам нужно несколько значений, вы можете сгенерировать последовательность для каждого атрибута, как показано в подвыборе с именем B ниже:
select a.ID
, b.Seq
, a.Title
, a.Date
, a.Etc
, max(case b.key when 'Name' then b.value end) Name
, max(case b.key when 'DOB' then b.value end) DOB
from TableA a
left join (select @Seq:=case
when @aid=b.Table_A_ID and @key=b.key
then @Seq + 1
else 1
end Seq
, @aid:=b.Table_A_ID Table_A_ID
, @key:=b.key `Key`
, b.value
from tableB b
order by table_a_id, b.key) b
on a.id = b.table_a_id
group by a.id, a.title, a.date, a.etc, b.Seq;
Это отличается от ответа @ GMB тем, что он возвратит каждый атрибут только один раз с нулями в строках, где для каждого атрибута меньше значений, тогда как решение @ GMB вернет произведение CROSS всех атрибутов для данной строки.
Objective C является строгим надмножеством C. По сути, это имеет много функций как указатели, которые переводят плохо на.NET. Конечно, может случиться так, что - на практике - большинство программ Objective C записано таким способом, которым они также скомпилировали бы против более строго определенной версии спецификации языка, которая была более строгой, но могла быть переведена в безопасный код.
Принимая дело обстоит так, часть отправки метода Objective C является естественным пригодным для динамических возможностей ДОЛЛАРА. Я на самом деле рассмотрел создание такого порта.
Не должно быть никаких проблем, размещающих Objective C ontop CLR. Можно, вероятно, реализовать время выполнения ontop ДОЛЛАРА, или в худшем случае реализуют собственное. Это все еще существенно отличается от компиляции любых существенных кодовых баз Objective C для CLR, так как подавляющее большинство кода Objective C, которым Вы, вероятно, будете интересоваться, зависит от платформ Apple.
В конце Вы или должны будете повторно реализовать их, или, Objective C моста к платформам.NET, которые позволили бы Вам писать код Objective C, но он не будет использовать платформу, совместимую ни с каким существующим кодом Objective C. Вы могли бы хотеть смотреть на Cocotron, который является перекрестной средой компиляции, которая позволяет разработчикам Mac перемещать некоторые приложения Objective C в Windows. Это должно обеспечить довольно хороший пример времени выполнения Objective C для Windows, а также потенциально служить несколькими основами, необходимыми для создания разумного объема кода Objective C применимым, после того как Вы поднимаете компилятор, который может предназначаться для.NET
Если Вы имеете в виду способность записать приложения.NET с помощью синтаксиса Objective C и способности использовать структуры данных от платформ Основы (таких как NSArray), это тривиально (хотя длинный) для выполнения. Это не отличалось бы, чем добавляющая поддержка любого языка.
Однако то, что делает разработку Objective C большой на Mac, не является синтаксисом, это - другой API, как который обеспечивает Apple:
В дополнение к этим API, которые было бы намного более трудно реализовать, также необходимо думать о вещах как поддержка Привязки и Значение ключа, Наблюдающее, который было бы намного намного более трудно реализовать в CLR.
Нет действительно нет..NET компилирует в IL (или CIL или MSIL), который является в основном машинным кодом для виртуальной машины. Можно программировать в IL как Вы, делают в блоке (не, что я видел, что любой делает это). Если бы у Вас были опыт, знание и сообразительность, то там не была бы без проблем, пишущий Objective C в компилятор IL. Черт, существуют даже языки функционального программирования (F#) для.NET. Помимо обменивающихся сообщениями возможностей и библиотек, это не слишком отличается от C#, VB.NET, и т.д.
Какая потрясающая идея! Objective-C# или некоторые такой.
Вот то, где Вы могли бы запустить: Wikiepedia на IL Microsoft.
Как другие сказали, да это возможно. Является ли это хорошей идеей (особенно "в духе кросс-платформенной разработки"), другой вопрос. Снова, как был отмечен, язык не очень без его библиотек. Так как Objective C теперь используется почти исключительно в Mac / контекст iPhone, способность написать код в нем в Windows не собирается покупать Вас очень, если они - Ваши цели.
Кроме того, уже можно записать Objective C в Windows - я верю gcc, который обычно используется с XCode, будет компилятор Obj C в Windows также, а также GnuStep.
Который просто уезжает, существует ли преимущество для рабочего Objective C по .NET? Существуют некоторые хорошие функции Objective C, которые не найдены на Ваших типичных языках .NET. Лично мне действительно нравится маркировка имени метода параметров. Однако я не думаю, что достаточно сделать стоящим принести его. Большинство вещей, к которым Objective C способен, C#, имеет свои собственные решения. Теперь, если только они смягчились бы при отказе реализовать параметры, передаваемые по имени...
Используя NObjective bridge вы можете работать с существующими классами Objective-C на C# или создавать новые. Также после финального релиза 'Visual Studio 2010' и '.NET 4' я добавлю поддержку DLR для NObjective.
.