加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – 我可以在列范例INT和VARCHAR之间左键毗连吗?

发布时间:2021-03-06 19:33:36 所属栏目:编程 来源:网络整理
导读:我被赋予了查察MSSQL查询题目的使命,我不是SQL专业版!这不是我的刚强. 我在2个差异的数据库中有2个表;忽略表引用,由于我已将它们以后查询中删除.我的题目是PERSON_CODE是一个表中的整数值,另一个是VARCHAR,我将运行此查询并将数据直接理会到Users表中,同时

我被赋予了查察MSSQL查询题目的使命,我不是SQL专业版!这不是我的刚强.

我在2个差异的数据库中有2个表;忽略表引用,由于我已将它们以后查询中删除.我的题目是PERSON_CODE是一个表中的整数值,另一个是VARCHAR,我将运行此查询并将数据直接理会到Users表中,同时在PHP中散列暗码.

可是,因为Users表中的某些字段是Jane,John这样的字符名称,而且Students中的全部值都是整数,因此我会因数据范例而收到错误.

下面是我到今朝为止构建的查询 – 它很是简朴:

SELECT Students.PERSON_CODE,Students.PASSWORD
FROM Students
LEFT JOIN users 
ON Students.PERSON_CODE = users.username
WHERE Students.PERSON_CODE > '0' 
AND users.username IS INTEGER <- How do i do this. 

我必要知道是否有一种要领可以忽略Users表中不是整数的字段,以是我只能从Students表中得到整数功效.

以下是完备的办理方案.感谢Preveen.

SELECT Students.PERSON_CODE,Students.PASSWORD
FROM Students
LEFT JOIN users 
ON Students.PERSON_CODE = CASE 
                          When ISNUMERIC(users.username) = 1 THEN users.username
                          END
WHERE Students.PERSON_CODE > '0' 

新的更新

我做了一些变动,由于我但愿查询只行使PERSON_COde / username作为标识符来表现不在两个表中的行.

SELECT Students.PERSON_CODE,Students.PASSWORD
FROM Students
LEFT JOIN users 
ON cast(Students.PERSON_CODE as varchar(15)) = users.username
WHERE users.username = cast(Students.PERSON_CODE as varchar(15))

在某种水平上,我以为我必要一个完备的外部插手.

Table Students_________ Table users
PERSON_CODE____________ username
1______________________ 1
2______________________ 2
3______________________ 3
4______________________
5______________________
6______________________
7______________________
8______________________

有了这个查询,我想表现功效4,5,6,7,8

感谢!

最佳谜底 这对我来说好像是最好的办理方案:

SELECT Students.PERSON_CODE,Students.PASSWORD
FROM Students
LEFT JOIN users 
ON cast(Students.PERSON_CODE as varchar(10)) = users.username
WHERE Students.PERSON_CODE > 0 

这样您就不必要搜查username是否是整数.您只需在较量之前将PERSON_CODE转换为varchar(10)并办理题目.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读