Sql server 2008 填写缺少/不正确的性别值

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 =

我有一个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 = 
             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