Можно ли применить функцию cast к выражению select? Если да, то как? У меня есть запрос, который возвращает число, которое я должен использовать для получения другой информации из другой таблицы.
Sql как сделать запрос выбора
Ответ 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,