簡體   English   中英

將 int 轉換為 varchar

[英]Cast int to varchar

我有以下查詢,需要將idvarchar

架構

create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');

我試過的

select CAST(id as VARCHAR(50)) as col1 from t9;

select CONVERT(VARCHAR(50),id) as colI1 from t9;

但它們不起作用。 請建議。

您將需要castconvertCHAR數據類型,沒有varchar數據類型,你可以投/轉換數據:

select CAST(id as CHAR(50)) as col1 
from t9;

select CONVERT(id, CHAR(50)) as colI1 
from t9;

SQL Fiddle 上查看以下 SQL - 實際操作:

/*! Build Schema */
create table t9 (id INT, name VARCHAR(55));
insert into t9 (id, name) values (2, 'bob');

/*! SQL Queries */
select CAST(id as CHAR(50)) as col1 from t9;
select CONVERT(id, CHAR(50)) as colI1 from t9;

除了您嘗試轉換為不正確的數據類型這一事實之外,您用於轉換的語法convert正確。 convert函數使用以下內容,其中expr是您的列或值:

 CONVERT(expr,type)

要么

 CONVERT(expr USING transcoding_name)

您的原始查詢的語法向后。

您之所以這樣做,是因為VARCHAR不是可以轉換的有效類型。 根據 MySQL 文檔( http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast ),您只能轉換為:

  • 二進制[(N)]
  • 字符[(N)]
  • 日期
  • 約會時間
  • 十進制[(M[,D])]
  • [整數]
  • 時間
  • 無符號 [整數]

我認為你最好的選擇是使用CHAR

是的

SELECT id || '' FROM some_table;
or SELECT id::text FROM some_table;

是 postgresql,但 mySql 不允許!

mySql 中的快捷方式:

SELECT concat(id, '') FROM some_table;

我沒有 MySQL,但有 RDBMS(Postgres 等),您可以在其中使用 hack

SELECT id || '' FROM some_table;

連接進行隱式轉換。

我解決了將整數列 xa varchar列與

where CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_name

采用 :

SELECT cast(CHAR(50),id) as colI1 from t9;

我將籠統地回答這個問題,非常感謝上述貢獻者。
我在 MySQL Workbench 上使用 MySQL。 我在嘗試使用GROUP_CONCAT方法將charint連接在一起時遇到了類似的問題。 總之,對我有用的是:

假設您的char是 'c' 而int是 'i',因此,查詢變為:
...GROUP_CONCAT(CONCAT(c,' ', CAST(i AS CHAR))...

也應該能夠做這樣的事情:

Select (id :> VARCHAR(10)) as converted__id_int
from t9 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM