Sql как сделать запрос выбора

Можно ли применить функцию cast к выражению select? Если да, то как? У меня есть запрос, который возвращает число, которое я должен использовать для получения другой информации из другой таблицы.

Ответ 1

Вы просто CAST() таким образом

SELECT cast(yourNumber as varchar(10))
FROM yourTable

Затем, если вы хотите использовать JOIN на основе этого, вы можете использовать:

SELECT *
FROM yourTable t1
INNER JOIN yourOtherTable t2
    on cast(t1.yourNumber as varchar(10)) = t2.yourString

Ответ 2

Да, вы можете это сделать.

Синтаксис для CAST:

CAST ( expression AS data_type [ ( length ) ] )

Например:

CAST(MyColumn AS Varchar(10))

CAST в SELECT Заявление:

Select CAST(MyColumn AS Varchar(10)) AS MyColumn
FROM MyTable

См. дополнительную информацию CAST и CONVERT (Transact-SQL)

Ответ 3

Если вы используете SQL (который вы не сказали):

select cast(column as varchar(200)) from table 

Вы можете использовать его в любом выражении, например:

select value where othervalue in( select cast(column as varchar(200)) from table)
from othertable

Если вы хотите выполнить запрос соединения, ответ уже находится в другом сообщении:)

Ответ 4

Я интерпретировал этот вопрос как использование приведения в подзапрос. Да, вы можете это сделать:

select cast((<subquery>) as <newtype>)

Если вы это сделаете, вы должны быть уверены, что возвращает одну строку и одно значение. И, поскольку он возвращает одно значение, вы можете поместить в него в подзапрос:

select (select cast(<val> as <newtype>) . . .)

Ответ 5

И когда вы используете случай:

CASE
WHEN TB1.COD IS NULL THEN
    TB1.COD || ' - ' || TB1.NAME
ELSE
    TB1.COD || ' - ' || TB1.NAME || ' - ' || TB.NM_TABELAFRETE
END AS NR_FRETE,