2015-01-22 3 views
0

select 1 from table становится устаревшим в SQL Server 2014 или будущих версиях для SQL Server; если да, то в чем альтернатива для этого?Выбирает 1 из таблицы, устаревшей в SQL Server 2014

+3

Не очень уверен, что ваш quesion но выберите 1 из таблицы отображающим 1 как нормальное значение, которое является не то, что может устранить SQL Server. – sqluser

+2

Откуда вы получили эту информацию –

ответ

0

Возможно, это поможет, если это домашнее задание.

declare @count int 
select @count = count(*) from table 
while (@count!=0) 
begin 
    select 1 
    select @count = @count - 1 
end 
+0

Я не вижу связи между вашим ответом и вопросом OP. Не могли бы вы прояснить это. Благодарю. – sqluser

+0

Спасибо за ваш комментарий @sqluser. выберите 1 из таблицы. OP хочет видеть 1s столько же, сколько число строк таблицы. Прямо ответ показывает 1 сек столько же, сколько и количество строк таблицы. –

+0

Если это так, вы совершенно правы. – sqluser

0

Select 1 from tablename дает ответ 1 нет. или строки в таблице.

По умолчанию * используется для всех столбцов, или вы определяете столбец с псевдонимом.

Когда вы даете select 1, он дает единственную запись со значением 1, так как нет табло.

Когда вы даете select 1 from tablename, это означает, что он сначала получит общую запись, и по вашему выбору 1 в списке столбцов будет отображаться 1 во всей записи.

просто попробовать

select 1 
select 1 from tablename 
2

Лично я никогда не писать код, как это, но я вижу другой разработчик SELECT 1 в двух случаях.

  1. EXISTS (SELECT 1 FROM table)
  2. SELECT COUNT(1) FROM table

В любом случае, 1 может быть записана в виде *. SQL Server достаточно умен, чтобы знать, что вам действительно не нужны все столбцы. Следующие запросы делают то же самое.

  • SELECT COUNT(1) FROM Table
  • SELECT COUNT(PK) FROM Table
  • SELECT COUNT(*) FROM Table

Это же для запроса EXISTS (SELECT *)