Uncaught TypeError: $ (& hellip;). Marquee не является функцией [duplicate]

Существует несколько способов преобразования данных из нескольких строк в столбцы. В SQL Server вы можете использовать функцию PIVOT для преобразования данных из строк в столбцы:

select Firstname, Amount, PostalCode, LastName, AccountNumber
from
(
  select value, columnname
  from yourtable
) d
pivot
(
  max(value)
  for columnname in (Firstname, Amount, PostalCode, LastName, AccountNumber)
) piv;

См. Демо .

Если у вас есть неизвестное число columnnames, которое вы хотите перенести, тогда вы можете использовать динамический SQL:

DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT ',' + QUOTENAME(ColumnName) 
                    from yourtable
                    group by ColumnName, id
                    order by id
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = N'SELECT ' + @cols + N' from 
             (
                select value, ColumnName
                from yourtable
            ) x
            pivot 
            (
                max(value)
                for ColumnName in (' + @cols + N')
            ) p '

exec sp_executesql @query;

См. Демо .

Если вы это сделаете не хотите использовать функцию PIVOT, то вы можете использовать агрегатную функцию с выражением CASE:

select
  max(case when columnname = 'FirstName' then value end) Firstname,
  max(case when columnname = 'Amount' then value end) Amount,
  max(case when columnname = 'PostalCode' then value end) PostalCode,
  max(case when columnname = 'LastName' then value end) LastName,
  max(case when columnname = 'AccountNumber' then value end) AccountNumber
from yourtable

См. Демо .

Это также может быть выполнено с использованием нескольких соединений, но вам понадобится некоторый столбец, чтобы связать каждую из строк, которые у вас нет в ваших данных образца. Но основным синтаксисом будет:

select fn.value as FirstName,
  a.value as Amount,
  pc.value as PostalCode,
  ln.value as LastName,
  an.value as AccountNumber
from yourtable fn
left join yourtable a
  on fn.somecol = a.somecol
  and a.columnname = 'Amount'
left join yourtable pc
  on fn.somecol = pc.somecol
  and pc.columnname = 'PostalCode'
left join yourtable ln
  on fn.somecol = ln.somecol
  and ln.columnname = 'LastName'
left join yourtable an
  on fn.somecol = an.somecol
  and an.columnname = 'AccountNumber'
where fn.columnname = 'Firstname'

1
задан RYN 24 February 2012 в 14:48
поделиться

2 ответа

Увидев ваш обновленный вопрос, проблема понятна. Вы загружаете jquery второй раз (3-я последняя строка), которая, конечно же, перезаписывает все подключаемые ранее плагины. И поскольку вызов .marquee является асинхронным (обратный вызов к событию готовности), плагин исчез в момент вызова обратного вызова.

Решение. Удалите этот второй раз, когда вы загружаете jquery.

3
ответ дан Yoshi 5 September 2018 в 07:04
поделиться

Попробуйте положить это:

<script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(function (){ 
        jQuery("#marquee").marquee(); 
    });
</script>

в теле

Вот пример того, что я говорю: http://jsfiddle.net/mjgasner / m64xQ /

В настоящий момент это не сработает, но если вы измените загрузку javascript на nowrap (body), он будет работать.

1
ответ дан Mikey G 5 September 2018 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: