В SQL Server, когда я создаю столбец как:Каков тип этого столбца?
select *, '1' as test
, что является тип этого нового столбца 1 т.е.?
Еще один вопрос, могу ли я указать этот столбец на другой стол?
В SQL Server, когда я создаю столбец как:Каков тип этого столбца?
select *, '1' as test
, что является тип этого нового столбца 1 т.е.?
Еще один вопрос, могу ли я указать этот столбец на другой стол?
Для SQL Server, вы можете ответить на эти вопросы легко с помощью sp_describe_first_result_set
:
exec sp_describe_first_result_set N'select *, ''1'' as test from sys.objects'
Производит набор результатов, последняя строка которой указывает на то, что test
столбец в том, что результирующий набор имеет тип varchar(1)
. (Другие результаты в этом случае, потянув другие столбцы из sys.objects
таблицы становится ясно, что эта процедура способна описать столбцы как не- var
char(2)
или nvarchar(128)
, так что это не просто проблема отображения)
Этот столбец имеет тип char (1) и да, вы можете использовать этот столбец в соединениях или других манипуляциях и т. Д.
потому что его значение является строкой внутри '' Если вы хотите, чтобы это целое число. Вы можете сделать следующее:
select *, Cast(1 as INT) as test FROM SomeTable
См. Мой обновленный ответ –
@DmitryBychenko - это может быть более разумный результат, но это не то, что например. SQL Server производит. –
Это может зависеть от RDBMS , наиболее вероятным является 'Char (1)' –
ANSI/ISO SQL: «Объявленный тип <символьного строкового литерала> является символьной строкой фиксированной длины. Длина строкового литерала - это число < символьное представление> s, которое оно содержит. " то есть «символ (1)» в этом случае. –
jarlh