Sql server 2008 填写缺少/不正确的性别值
我有一个SQL查询:Sql server 2008 填写缺少/不正确的性别值,sql-server-2008,Sql Server 2008,我有一个SQL查询: DECLARE @table TABLE (Gender VARCHAR(15)) INSERT INTO @table VALUES ('F'), ('AAA'), ('M'), ('null'), ('NULL') 如何编写一个标量函数来清理这个性别列,插入F或M来代替“AAA”或这些空值。您可以从这个开始,但您确定它是M还是F的条件是什么 UPDATE yourTable SET gender =
DECLARE @table TABLE (Gender VARCHAR(15))
INSERT INTO @table
VALUES
('F'),
('AAA'),
('M'),
('null'),
('NULL')
如何编写一个标量函数来清理这个性别列,插入F或M来代替“AAA”或这些空值。您可以从这个开始,但您确定它是M还是F的条件是什么
UPDATE yourTable
SET gender =
CASE
WHEN -- your condition where you determine if it should be M --
THEN 'M'
ELSE 'F'
END
WHERE LOWER(gender) NOT IN ('m', 'f')
位仅具有0
或1
select
case gender
when 1 then 'F'
when 0 then 'M'
end as gender
from yourTable
或者在表中使用char(1)
位
数据类型只保存0和1(或空值)。他可能只想要M和F,这更清楚。当数据类型为0时,选择它show F,当数据类型为1时,选择它show M。这就像我的sql一样。当1然后是F,当0然后是M,并将你的列(性别)设置为非空。或者你可以使用字符(1),那么列(性别)可以插入一个字符。当然,也许他只是想要他能理解和应用的简单代码。我不是说你的错,只是有点复杂(如果他已经创建了他的表结构,并且表中有数据)。
select
case gender
when 1 then 'F'
when 0 then 'M'
end as gender
from yourTable